1000
It is possible to search for an item ( inside the Editor ), case insensitive

With Exgrid1
	.BeginUpdate()
	With .Columns.Add("DropDownList").Editor
		.EditType = exontrol.EXGRIDLib.EditTypeEnum.DropDownListType
		.AddItem(1,"One")
		.AddItem(2,"Two")
		.AddItem(3,"Three")
	End With
	With .Items
		.AddItem(Exgrid1.Columns.Item(0).Editor.get_FindItem(">ONE"))
		.AddItem(Exgrid1.Columns.Item(0).Editor.get_FindItem(">ThRee"))
		.AddItem(Exgrid1.Columns.Item(0).Editor.get_FindItem("ONE"))
		.AddItem(Exgrid1.Columns.Item(0).Editor.get_FindItem(">tWo"))
	End With
	.EndUpdate()
End With
999
The text after the BR-tag is in same line as the text before the BR-tag (entire column)

With Exgrid1
	.BeginUpdate()
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exHLines
	With .Columns.Add("Default")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,False)
	End With
	With .Items
		.AddItem("This is the first line.<br>This is the second line.")
		.AddItem("This is the first line.<br>This is the second line.")
		.AddItem("This is the first line.<br>This is the second line.")
	End With
	.EndUpdate()
End With
998
The text after the BR-tag is in same line as the text before the BR-tag (individual)

Dim h
With Exgrid1
	.BeginUpdate()
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exHLines
	.Columns.Add("Default")
	With .Items
		.set_CellValueFormat(.AddItem("This is the first line.<br>This is the second line."),0,exontrol.EXGRIDLib.ValueFormatEnum.exHTML)
		h = .AddItem("<b>This is the first line.<br>This is the second line.</b>")
		.set_CellValueFormat(h,0,exontrol.EXGRIDLib.ValueFormatEnum.exHTML)
		.set_CellSingleLine(h,0,exontrol.EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap)
		.set_CellValueFormat(.AddItem("This is the first line.<br>This is the second line."),0,exontrol.EXGRIDLib.ValueFormatEnum.exHTML)
	End With
	.EndUpdate()
End With
997
Can I disable an item once the user selects a new value into a different item

' Change event - Occurs when the user changes the cell's content.
Private Sub Exgrid1_Change(ByVal sender As System.Object,ByVal Item As Integer,ByVal ColIndex As Integer,ByRef NewValue As Object) Handles Exgrid1.Change
	With Exgrid1
		With .Items
			.set_EnableItem(.get_ItemByIndex(1),False)
		End With
	End With
End Sub

Dim h1,h2
With Exgrid1
	.FreezeEvents(True)
	.BeginUpdate()
	.ScrollBySingleLine = True
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.Columns.Add("Q")
	.Columns.Add("A")
	With .Items
		h1 = .AddItem("What's your gender?")
		With .get_CellEditor(h1,1)
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.DropDownListType
			.AddItem(1,"Male")
			.AddItem(0,"Female")
		End With
		.set_CellValue(h1,1,1)
		h2 = .AddItem("What's pet name?")
		.set_CellValue(h2,1,"This is my pet favorite long long long name, that shoul break the line in multiple pieces")
		.set_CellSingleLine(h2,1,exontrol.EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap)
	End With
	.EndUpdate()
	.FreezeEvents(False)
End With
996
How can I get a row expanded / enlarged to fit the cell's text (entire column)

Dim h1,h2
With Exgrid1
	.BeginUpdate()
	.ScrollBySingleLine = True
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.Columns.Add("Q")
	With .Columns.Add("A")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,False)
		With .Editor
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.MemoType
			.Appearance = exontrol.EXGRIDLib.InplaceAppearanceEnum.SingleApp
		End With
	End With
	With .Items
		h1 = .AddItem("What's name?")
		.set_CellValue(h1,1,"This is my pet favorite long long long name, that shoul break the line in multiple pieces")
		h2 = .AddItem("What's your pet name?")
		.set_CellValue(h2,1,"This is my pet favorite long long long name, that shoul break the line in multiple pieces")
	End With
	.EndUpdate()
End With
995
How can I get a row expanded / enlarged to fit the cell's text (individual cell)

Dim h1,h2
With Exgrid1
	.BeginUpdate()
	.ScrollBySingleLine = True
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.Columns.Add("Q")
	.Columns.Add("A")
	With .Items
		h1 = .AddItem("What's name?")
		.set_CellValue(h1,1,"This is my pet favorite long long long name, that shoul break the line in multiple pieces")
		h2 = .AddItem("What's your pet name?")
		With .get_CellEditor(h2,1)
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.MemoType
			.Appearance = exontrol.EXGRIDLib.InplaceAppearanceEnum.SingleApp
		End With
		.set_CellValue(h2,1,"This is my pet favorite long long long name, that shoul break the line in multiple pieces")
		.set_CellSingleLine(h2,1,exontrol.EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap)
	End With
	.EndUpdate()
End With
994
InsertControlItem / UserEditor / A2X:

Dim h,hX
With Exgrid1
	.BeginUpdate()
	.BackColor = Color.FromArgb(240,240,240)
	.ConditionalFormats.Add("1 = 1").Bold = True
	.Columns.Add("Type").Alignment = exontrol.EXGRIDLib.AlignmentEnum.RightAlignment
	With .Items
		h = .AddItem("1. A ProgID such as ""MSCAL.Calendar.7""")
		.set_ItemDivider(h,0)
		hX = .InsertControlItem(0,"MSCAL.Calendar","")
		.get_ItemObject(hX).BackColor = Color.FromArgb(255,255,255)
		h = .AddItem("2. A CLSID such as ""{0036F83C-D892-4B7B-AA0B-BEDD8D16A738}""")
		.set_ItemDivider(h,0)
		hX = .InsertControlItem(0,"{0036F83C-D892-4B7B-AA0B-BEDD8D16A738}","")
		h = .AddItem("3. A URL such as ""http://www.exontrol.com""")
		.set_ItemDivider(h,0)
		hX = .InsertControlItem(0,"http://www.exontrol.com","")
		h = .AddItem("4. A reference to an Active document such as ""file://\\Documents\MyDoc.doc""")
		.set_ItemDivider(h,0)
		hX = .InsertControlItem(0,"file://C:\empesting.xml","")
		h = .AddItem("5.A fragment of HTML such as ""MSHTML:<HTML><BODY>This is a line of text</BODY></HTML>""")
		.set_ItemDivider(h,0)
		hX = .InsertControlItem(0,"MSHTML:<HTML><BODY>This is a <b>line of</b> text</BODY></HTML>","")
		.set_ItemHeight(hX,56)
		h = .AddItem("6.Anything, if it is preffixed by ""A2X:""")
		.set_ItemDivider(h,0)
		hX = .InsertControlItem(0,"A2X:TOC24.Toc24Ctrl.1","")
	End With
	.EndUpdate()
End With
993
How do I add a RichTextBox editor
' UserEditorOleEvent event - Occurs when an user editor fires an event.
Private Sub Exgrid1_UserEditorOleEvent(ByVal sender As System.Object,ByVal Obj As Object,ByVal Ev As exontrol.EXGRIDLib.OleEvent,ByRef CloseEditor As Boolean,ByVal Item As Integer,ByVal ColIndex As Integer) Handles Exgrid1.UserEditorOleEvent
	With Exgrid1
		Debug.Print( Ev )
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.DefaultItemHeight = 32
	With .Columns.Add("RICHTEXT").Editor
		.EditType = exontrol.EXGRIDLib.EditTypeEnum.UserEditorType
		.UserEditor("RICHTEXT.RichtextCtrl","")
		With .UserEditorObject
			.AutoVerbMenu = True
			.TextRTF = "{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard\r\nThis is some {\b bold} text.\par\r\n}"
		End With
	End With
	With .Items
		.AddItem("RICHTEXT.RichtextCtrl")
	End With
	.EndUpdate()
End With
992
Is it possible to trap a double-click event on a specific cell and when that happens, to set the cell to a specific value
' DblClick event - Occurs when the user dblclk the left mouse button over an object.
Private Sub Exgrid1_DblClick(ByVal sender As System.Object,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles Exgrid1.DblClick
	Dim c,h,hit
	With Exgrid1
		h = .get_ItemFromPoint(-1,-1,c,hit)
		Debug.Print( .Items.get_CellValue(h,c) )
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.HeaderAppearance = exontrol.EXGRIDLib.AppearanceEnum.Etched
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.Columns.Add("C1")
	.Columns.Add("C2")
	With .Items
		.set_CellValue(.AddItem("Item 1"),1,"Item 2")
		.set_CellValue(.AddItem("Item 3"),1,"Item 4")
		.set_CellValue(.AddItem("Item 5"),1,"Item 6")
	End With
	.EndUpdate()
End With
991
How can I display dates in DD/MM/YYYY format

Dim h
With Exgrid1
	.BeginUpdate()
	.ScrollBySingleLine = False
	.Columns.Add("Date")
	With .Items
		.set_ItemDivider(.AddItem("Different Date Formats"),0)
		.set_FormatCell(.AddItem(#12/1/1971#),0,"((shortdateF(value) mid 4) left 2) + `/` + (shortdateF (value) left 2) + `/` + (shortdateF (value) right 4)")
		.set_FormatCell(.AddItem(#12/1/1971#),0,"(1 array (0:=(shortdateF(value) split `/`))) + `/` + (0 array (=:0) ) + `/` + (2 array (=:0) )")
		.set_FormatCell(.AddItem(#12/1/1971#),0,"((`0` + day(value) ) right 2) + `/` + ((`0` + month(value) ) right 2) + `/` + year(value)")
		.set_FormatCell(.AddItem(#12/1/1971#),0,"day(value) + `/` + month(value) + `/` + year(value)")
		.set_FormatCell(.AddItem(#12/1/1971#),0,"year(value) + ` - ` + day(value) + ` - ` + month(value)")
		h = .AddItem(#12/1/1971#)
		.set_ItemHeight(h,24)
		.set_CellValueFormat(h,0,exontrol.EXGRIDLib.ValueFormatEnum.exHTML)
		.set_FormatCell(h,0,"`<b>` + year(value) + `</b><off -4> ` + day(value) + ` - ` + month(value)")
		.set_ItemDivider(.AddItem("Predefined Date Formats"),0)
		.set_FormatCell(.AddItem(#12/1/1971#),0,"value")
		.set_FormatCell(.AddItem(#12/1/1971#),0,"shortdateF(value)")
		.set_FormatCell(.AddItem(#12/1/1971#),0,"shortdate(value)")
		.set_FormatCell(.AddItem(#12/1/1971#),0,"longdate(value)")
	End With
	.EndUpdate()
End With
990
I have noticed that the column gets resized once I release the mouse. I have a column that displays multiple-lines cells, and the text gets wrapped only when user releases the mouse. Is it possible to get resized contiguously as I had before
With Exgrid1
	.BeginUpdate()
	.ScrollBySingleLine = False
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exVLines
	.ColumnsAllowSizing = True
	.Columns.Add("Column A (cont)").set_Def(exontrol.EXGRIDLib.DefColumnEnum.exColumnResizeContiguously,True)
	.Columns.Add("Column 1")
	.Columns.Add("Column B (cont)").set_Def(exontrol.EXGRIDLib.DefColumnEnum.exColumnResizeContiguously,True)
	.Columns.Add("Column 2")
	.EndUpdate()
End With
989
How do I get the column from cursor, when it hovers the empty portion of the items section
' MouseMove event - Occurs when the user moves the mouse.
Private Sub Exgrid1_MouseMoveEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles Exgrid1.MouseMoveEvent
	Dim c,hit,i
	With Exgrid1
		i = .get_ItemFromPoint(0,-1,c,hit)
		Debug.Print( "Column" )
		Debug.Print( c )
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exVLines
	.Columns.Add("Column 0")
	.Columns.Add("Column 1")
	.Columns.Add("Column 2")
	.EndUpdate()
End With
988
How do I add items once the user clicks the empty area
' Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
Private Sub Exgrid1_Click(ByVal sender As System.Object) Handles Exgrid1.Click
	Dim c,hit,i
	With Exgrid1
		i = .get_ItemFromPoint(0,-1,c,hit)
		With .Items
			.set_CellValue(.AddItem(i),1,c)
		End With
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.Columns.Add("Number of Items to Add")
	.Columns.Add("Click on Column")
	.EndUpdate()
End With
987
Is there any option to stop events
' AddItem event - Occurs after a new Item has been inserted to Items collection.
Private Sub Exgrid1_AddItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddItem
	With Exgrid1
		Debug.Print( "AddItem event is fired only if FreezeEvents(False) is called" )
	End With
End Sub

Dim h1,h2
With Exgrid1
	.FreezeEvents(True)
	.BeginUpdate()
	.DefaultItemHeight = 24
	.Columns.Add("Task")
	With .Items
		h1 = .AddItem("Task 1")
		h2 = .AddItem("Task 2")
	End With
	.EndUpdate()
	.FreezeEvents(False)
End With
986
How can I include the child items, when a filter is applied

Dim h0
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = True
	.ContinueColumnScroll = False
	.MarkSearchColumn = False
	.SearchColumnIndex = 1
	.Indent = 16
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.FilterBarPromptVisible = exontrol.EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible
	.FilterBarPromptPattern = "Nancy"
	.FilterInclude = exontrol.EXGRIDLib.FilterIncludeEnum.exItemsWithChilds
	With .Columns
		.Add("Name").Width = 96
		.Add("Title").Width = 96
		.Add("City")
	End With
	With .Items
		h0 = .AddItem("Nancy Davolio")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"Seattle")
		h0 = .InsertItem(h0,Nothing,"Andrew Fuller")
		.set_CellValue(h0,1,"Vice President, Sales")
		.set_CellValue(h0,2,"Tacoma")
		h0 = .InsertItem(h0,Nothing,"Michael Suyama")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"London")
		h0 = .AddItem("Janet Leverling")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"Kirkland")
		h0 = .InsertItem(h0,Nothing,"Margaret Peacock")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"Redmond")
		.set_ExpandItem(0,True)
	End With
	.ApplyFilter()
	.EndUpdate()
End With
985
How do I prevent changing the cell's state ( check-box state )
' CellStateChanging event - Fired before cell's state is about to be changed.
Private Sub Exgrid1_CellStateChanging(ByVal sender As System.Object,ByVal Item As Integer,ByVal ColIndex As Integer,ByRef NewState As Integer) Handles Exgrid1.CellStateChanging
	With Exgrid1
		With .Items
			NewState = .get_CellState(Item,ColIndex)
		End With
	End With
End Sub

Dim h
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	With .Columns.Add("P1")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.PartialCheck = True
	End With
	With .Columns.Add("P2")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.PartialCheck = True
	End With
	With .Items
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child 1")
		.InsertItem(h,Nothing,"Child 2")
		.set_ExpandItem(h,True)
	End With
	.EndUpdate()
End With
984
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel

Dim h
With Exgrid1
	.BeginUpdate()
	With .Columns.Add("Date")
		.SortType = exontrol.EXGRIDLib.SortTypeEnum.SortDate
		.DisplayFilterButton = True
		.DisplayFilterPattern = False
		.DisplayFilterDate = True
		.FilterList = exontrol.EXGRIDLib.FilterListEnum.exShowFocusItem Or exontrol.EXGRIDLib.FilterListEnum.exShowCheckBox Or exontrol.EXGRIDLib.FilterListEnum.exSortItemsDesc
	End With
	With .Columns.Add("DateTime")
		.SortType = exontrol.EXGRIDLib.SortTypeEnum.SortDateTime
		.DisplayFilterButton = True
		.DisplayFilterPattern = False
		.FilterList = exontrol.EXGRIDLib.FilterListEnum.exShowFocusItem Or exontrol.EXGRIDLib.FilterListEnum.exShowCheckBox Or exontrol.EXGRIDLib.FilterListEnum.exSortItemsDesc
	End With
	With .Columns.Add("Time")
		.SortType = exontrol.EXGRIDLib.SortTypeEnum.SortTime
		.DisplayFilterButton = True
		.DisplayFilterPattern = False
		.FilterList = exontrol.EXGRIDLib.FilterListEnum.exShowFocusItem Or exontrol.EXGRIDLib.FilterListEnum.exShowCheckBox Or exontrol.EXGRIDLib.FilterListEnum.exSortItemsDesc
		.FormatColumn = "time(value)"
	End With
	With .Columns.Add("Numeric")
		.SortType = exontrol.EXGRIDLib.SortTypeEnum.SortNumeric
		.DisplayFilterButton = True
		.FilterList = exontrol.EXGRIDLib.FilterListEnum.exShowFocusItem Or exontrol.EXGRIDLib.FilterListEnum.exShowCheckBox Or exontrol.EXGRIDLib.FilterListEnum.exSortItemsDesc
	End With
	With .Columns.Add("String")
		.DisplayFilterButton = True
		.FilterList = exontrol.EXGRIDLib.FilterListEnum.exShowFocusItem Or exontrol.EXGRIDLib.FilterListEnum.exShowCheckBox Or exontrol.EXGRIDLib.FilterListEnum.exSortItemsDesc
	End With
	With .Items
		h = .AddItem(#1/27/2010#)
		.set_CellValue(h,1,#1/27/2010 10:00:00 AM#)
		.set_CellValue(h,2,.get_CellValue(h,1))
		.set_CellValue(h,3,1)
		.set_CellValue(h,4,.get_CellValue(h,3))
		h = .AddItem(#1/27/2011#)
		.set_CellValue(h,1,#1/27/2011 9:00:00 AM#)
		.set_CellValue(h,2,.get_CellValue(h,1))
		.set_CellValue(h,3,11)
		.set_CellValue(h,4,.get_CellValue(h,3))
		h = .AddItem(#11/2/2010#)
		.set_CellValue(h,1,#11/2/2010 9:00:00 AM#)
		.set_CellValue(h,2,.get_CellValue(h,1))
		.set_CellValue(h,3,2)
		.set_CellValue(h,4,.get_CellValue(h,3))
	End With
	.Columns.Item("DateTime").DisplayFilterDate = False
	.EndUpdate()
End With
983
I am using Layout property to sort multiple columns at once. The problem is that all items get expanded. How do I prevent that

Dim h
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	With .Columns.Add("P1")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.PartialCheck = True
	End With
	With .Columns.Add("P2")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.PartialCheck = True
		.FormatColumn = "1 index ``"
	End With
	With .Items
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child A")
		.InsertItem(h,Nothing,"Child B")
		.InsertItem(h,Nothing,"Child A")
		.InsertItem(h,Nothing,"Child B")
		.AddItem("Root")
		.AddItem("Root")
	End With
	.SingleSort = False
	.Layout = "multiplesort=""C0:1 C1:2"";collapse="""""
	.EndUpdate()
End With
982
How do I find the cell's type, or what the cell holds

With Exgrid1
	.BeginUpdate()
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	With .Columns
		.Add("Value").Width = 24
		.Add("Type").FormatColumn = "type(%0)"
		.Add("TypeAsString").FormatColumn = "(0 := type(%0)) array (`empty`, `null`, `short`, `long`, `float`, `double`, `currency`, `date`, `string`, `object`, `error`, `b" & _
"oolean`, `variant`, `any`, `reserved`, `decimal`, `char`, `byte`, `unsigned short`, `unsigned long`, `long on 64 bits`)"
		.Add("Length").FormatColumn = "len(%0)"
	End With
	With .Items
		.AddItem()
		.AddItem("")
		.set_CellValue(.AddItem(),0,Exgrid1)
		.set_CellValue(.AddItem(),0,True)
		.set_CellValue(.AddItem(),0,-1)
		.set_CellValue(.AddItem(),0,-1)
		.set_CellValue(.AddItem(),0,#1/1/2001#)
	End With
	.EndUpdate()
End With
981
How can I get ride / hide the image being dragged by OLE Drag and Drop
// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
Dim h
With Exgrid1
	.OLEDropMode = exontrol.EXGRIDLib.exOLEDropModeEnum.exOLEDropManual
	.set_Background(exontrol.EXGRIDLib.BackgroundPartEnum.exDragDropAfter,Color.FromArgb(255,255,255))
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.Columns.Add("Default")
	With .Items
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child 1")
		.InsertItem(h,Nothing,"Child 2")
		.set_ExpandItem(h,True)
	End With
End With
980
The ReadOnly property does not prevent changing the column's check-box (sample 2)

With Exgrid1
	.BeginUpdate()
	.ShowFocusRect = False
	With .Columns.Add("C1")
		.AllowSizing = False
		.Width = 18
		.Editor.EditType = exontrol.EXGRIDLib.EditTypeEnum.CheckValueType
	End With
	.Columns.Add("C2")
	With .Items
		.set_CellValue(.AddItem(0),1,"Item 1")
		.set_CellValue(.AddItem(-1),1,"Item 2")
		.set_CellValue(.AddItem(0),1,"Item 3")
	End With
	.ReadOnly = exontrol.EXGRIDLib.ReadOnlyEnum.exReadOnly
	.Columns.Item(0).Editor.set_Option(exontrol.EXGRIDLib.EditorOptionEnum.exCheckValue2,2)
	.EndUpdate()
End With
979
The ReadOnly property does not prevent changing the column's check-box (sample 1)

With Exgrid1
	.BeginUpdate()
	.ShowFocusRect = False
	With .Columns.Add("C1")
		.AllowSizing = False
		.Width = 18
		With .Editor
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.CheckValueType
			.set_Option(exontrol.EXGRIDLib.EditorOptionEnum.exCheckValue2,1)
		End With
	End With
	.Columns.Add("C2")
	With .Items
		.set_CellValue(.AddItem(0),1,"Item 1")
		.set_CellValue(.AddItem(-1),1,"Item 2")
		.set_CellValue(.AddItem(0),1,"Item 3")
	End With
	.ReadOnly = exontrol.EXGRIDLib.ReadOnlyEnum.exReadOnly
	.EndUpdate()
End With
978
How can I export checked items only

With Exgrid1
	.BeginUpdate()
	With .Columns
		.Add("C1").set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.Add("C2").FormatColumn = "1 index `A-Z`"
		.Add("C3").FormatColumn = "100 index ``"
	End With
	With .Items
		.AddItem("Item 1")
		.set_CellState(.AddItem("Item 2"),1)
		.set_CellState(.AddItem("Item 3"),1)
	End With
	.EndUpdate()
	Debug.Print( "Export CSV Checked Items Only:" )
	Debug.Print( .Export("","chk") )
End With
977
How can I export a hidden column

With Exgrid1
	.BeginUpdate()
	With .Columns
		.Add("C1")
		With .Add("C2")
			.FormatColumn = "1 index `A-Z`"
			.Visible = False
		End With
		With .Add("C3")
			.FormatColumn = "100 index ``"
			.Visible = False
		End With
	End With
	With .Items
		.AddItem("Item 1")
		.AddItem("Item 2")
		.AddItem("Item 3")
	End With
	.EndUpdate()
	Debug.Print( "Export CSV Hidden Columns (1,2):" )
	Debug.Print( .Export("","|1,2") )
End With
976
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 3)

Dim h,hChild
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.AutoDrag = exontrol.EXGRIDLib.AutoDragEnum.exAutoDragPositionAny
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exSolidLine
	.Indent = 16
	.MarkSearchColumn = False
	With .Columns
		With .Add("")
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
			.FormatColumn = "((1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 + `` :  (=:0 mid (1 + 1 + =:1) )  + `)` ) + ` ` + value"
		End With
	End With
	With .Items
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child")
		hChild = .InsertItem(h,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(h,Nothing,"Child")
		.set_ExpandItem(0,True)
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child")
		hChild = .InsertItem(h,Nothing,"Child")
		.set_CellState(hChild,0,1)
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(h,Nothing,"Child")
	End With
	.EndUpdate()
End With
975
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 2)

Dim h,hChild
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.GridLineColor = Color.FromArgb(190,190,190)
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.AutoDrag = exontrol.EXGRIDLib.AutoDragEnum.exAutoDragPositionAny
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exSolidLine
	.Indent = 16
	With .Columns
		.Add("Default")
		With .Add("")
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellPaddingRight,4)
			.AllowSizing = False
			.Width = 36
			.Position = 0
			.FormatColumn = "(1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 : (`............` left 2 * (=:0 count `.`)) + (=:0 mid (1 + 1 + =" & _
":1) ) "
		End With
	End With
	With .Items
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child")
		hChild = .InsertItem(h,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(h,Nothing,"Child")
		.set_ExpandItem(0,True)
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child")
		hChild = .InsertItem(h,Nothing,"Child")
		.set_CellState(hChild,0,1)
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(h,Nothing,"Child")
	End With
	.EndUpdate()
End With
974
I'm trying to use automatic numbering of the outline. How can I have A, B, C for root items, 1, 2, 3 for the sub-items, and a, b, c for sub-sub-items (sample 1)

Dim h,hChild
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.AutoDrag = exontrol.EXGRIDLib.AutoDragEnum.exAutoDragPositionAny
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exSolidLine
	.Indent = 16
	With .Columns
		.Add("Default")
		With .Add("")
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellPaddingRight,4)
			.Alignment = exontrol.EXGRIDLib.AlignmentEnum.RightAlignment
			.AllowSizing = False
			.Width = 24
			.Position = 0
			.FormatColumn = "(1:=(0 :=(1 rpos '.|A-Z||a-z|')) rfind `.`) < 0 ? `<b>` + =:0 : `<i>` + (=:0 mid (1 + 1 + =:1) ) "
		End With
	End With
	With .Items
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child")
		hChild = .InsertItem(h,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(h,Nothing,"Child")
		.set_ExpandItem(0,True)
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child")
		hChild = .InsertItem(h,Nothing,"Child")
		.set_CellState(hChild,0,1)
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(hChild,Nothing,"Child")
		.InsertItem(h,Nothing,"Child")
	End With
	.EndUpdate()
End With
973
How can I programmatically group by columns, without having the control's sort bar visible

Dim rs
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SortBarHeight = 0
	.SortBarVisible = True
	.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
	.AllowGroupBy = True
	.Layout = "multiplesort=""C1:2"""
	.EndUpdate()
End With
972
How do I perform my own sort

' Sort event - Fired when the control sorts a column.
Private Sub Exgrid1_Sort(ByVal sender As System.Object) Handles Exgrid1.Sort
	With Exgrid1
		Debug.Print( "Sort" )
		With .Items
			.set_ItemPosition(.get_ItemByIndex(1),0)
			.set_ItemPosition(.get_ItemByIndex(0),1)
		End With
	End With
End Sub

Dim h
With Exgrid1
	.BeginUpdate()
	.SingleSort = False
	.SortOnClick = exontrol.EXGRIDLib.SortOnClickEnum.exUserSort
	With .Columns
		.Add("Index").FormatColumn = "0 index ``"
		.Add("Data 1")
		.Add("Data 2")
	End With
	With .Items
		h = .AddItem(0)
		.set_CellValue(h,1,2)
		.set_CellValue(h,2,3)
		h = .AddItem(4)
		.set_CellValue(h,1,5)
		.set_CellValue(h,2,6)
		h = .AddItem(7)
		.set_CellValue(h,1,8)
		.set_CellValue(h,2,9)
	End With
	.Layout = "multiplesort=""C1:1 C2:2"""
	.EndUpdate()
End With
971
Is it possible to have a different alignment for parts of the cell's caption

Dim h
With Exgrid1
	.BeginUpdate()
	.TreeColumnIndex = -1
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	With .Columns.Add("Default")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
	End With
	With .Items
		.set_CellHAlignment(.AddItem("all-left"),0,exontrol.EXGRIDLib.AlignmentEnum.LeftAlignment)
		.set_CellHAlignment(.AddItem("all-center"),0,exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment)
		.set_CellHAlignment(.AddItem("all-right"),0,exontrol.EXGRIDLib.AlignmentEnum.RightAlignment)
		h = .AddItem("left<c>center<r>right")
		.set_CellValueFormat(h,0,exontrol.EXGRIDLib.ValueFormatEnum.exHTML)
	End With
	.EndUpdate()
End With
970
I have a column with Def(exCellSingleLine) property on False, word-wrapping, and I am wondering if possible to update the column's content while user is resizing it
With Exgrid1
	.BeginUpdate()
	With .Columns
		With .Add("MultipleLine")
			.Width = 32
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,False)
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exColumnResizeContiguously,True)
		End With
		With .Add("SingleLine")
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,False)
		End With
	End With
	With .Items
		.set_CellValue(.AddItem("This is a bit of long text that should break the line"),1,"This is a bit of long text that should break the line")
	End With
	.EndUpdate()
End With
969
How can I get the absolute position of an item
' MouseMove event - Occurs when the user moves the mouse.
Private Sub Exgrid1_MouseMoveEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles Exgrid1.MouseMoveEvent
	Dim c,hit
	With Exgrid1
		With .Items
			Debug.Print( .get_CellCaption(Exgrid1.get_ItemFromPoint(-1,-1,c,hit),"Position") )
		End With
	End With
End Sub

Dim h
With Exgrid1
	.BeginUpdate()
	.BackColorAlternate = Color.FromArgb(240,240,240)
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.Columns.Add("Def").DisplayFilterButton = True
	With .Items
		h = .AddItem("Root")
		.InsertItem(.InsertItem(h,Nothing,"Child 1"),Nothing,"Sub-Child 1")
		.InsertItem(.InsertItem(h,Nothing,"Child 2"),Nothing,"Sub-Child 2")
	End With
	.PutItems(.GetItems(-1))
	.PutItems(.GetItems(-1))
	.PutItems(.GetItems(-1))
	With .Columns.Add("Position")
		.FormatColumn = "1 apos ``"
		.Visible = False
	End With
	.EndUpdate()
End With
968
I am using ExComboBox as an user editor, how can I display a different column

' UserEditorClose event - Fired the user editor is about to be opened.
Private Sub Exgrid1_UserEditorClose(ByVal sender As System.Object,ByVal Obj As Object,ByVal Item As Integer,ByVal ColIndex As Integer) Handles Exgrid1.UserEditorClose
	' Items.CellValue(Item,ColIndex) = Object.Value
End Sub

' UserEditorOleEvent event - Occurs when an user editor fires an event.
Private Sub Exgrid1_UserEditorOleEvent(ByVal sender As System.Object,ByVal Obj As Object,ByVal Ev As exontrol.EXGRIDLib.OleEvent,ByRef CloseEditor As Boolean,ByVal Item As Integer,ByVal ColIndex As Integer) Handles Exgrid1.UserEditorOleEvent
	With Exgrid1
		Debug.Print( Ev )
	End With
End Sub

' UserEditorOpen event - Occurs when an user editor is about to be opened.
Private Sub Exgrid1_UserEditorOpen(ByVal sender As System.Object,ByVal Obj As Object,ByVal Item As Integer,ByVal ColIndex As Integer) Handles Exgrid1.UserEditorOpen
	' Object.Value = Me.Items.CellValue(Item,ColIndex)
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	With .Columns.Add("Exontrol.ComboBox").Editor
		.EditType = exontrol.EXGRIDLib.EditTypeEnum.UserEditorType
		.UserEditor("Exontrol.ComboBox","")
		With .UserEditorObject
			.BeginUpdate()
			.Style = 2
			.ColumnAutoResize = False
			rs = New ADODB.Recordset()
			With rs
				.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
			End With
			.DataSource = rs
			.Alignment = 0
			.IntegralHeight = True
			.MinHeightList = 128
			.MinWidthList = 648
			.HeaderHeight = 36
			.AllowSizeGrip = True
			.SingleEdit = True
			.LabelColumnIndex = 7
			.SearchColumnIndex = 0
			With .Columns.Item(0)
				.HeaderBold = True
				.HTMLCaption = "OrderID<br><fgcolor=808080>(search)"
			End With
			With .Columns.Item(7)
				.HeaderBold = True
				.HTMLCaption = "ShipName<br><fgcolor=808080>(display)"
				.Width = 128
			End With
			.UseTabKey = False
			.EndUpdate()
		End With
	End With
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.DefaultItemHeight = 21
	With .Items
		.set_CellEditorVisible(.AddItem(10248),0,exontrol.EXGRIDLib.EditorVisibleEnum.exEditorVisible)
		.set_CellEditorVisible(.AddItem(10249),0,exontrol.EXGRIDLib.EditorVisibleEnum.exEditorVisible)
		.set_CellEditorVisible(.AddItem(10250),0,exontrol.EXGRIDLib.EditorVisibleEnum.exEditorVisible)
	End With
	.EndUpdate()
End With
967
How do I sort the index column as numeric (Method 3)

' AddItem event - Occurs after a new Item has been inserted to Items collection.
Private Sub Exgrid1_AddItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddItem
	With Exgrid1
		With .Items
			.set_CellData(Item,1,.get_CellCaption(Item,1))
		End With
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.ColumnAutoResize = True
	.ShowFocusRect = False
	With .Columns.Add("Next")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellPaddingLeft,4)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exHeaderPaddingLeft,4)
	End With
	With .Columns.Add("Index")
		.AllowSizing = False
		.Width = 48
		.FormatColumn = "(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)"
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
		.SortType = exontrol.EXGRIDLib.SortTypeEnum.SortUserData
		.Position = 0
	End With
	With .Items
		.AddItem("Item 1")
		.AddItem("Item 2")
		.AddItem("Item 3")
		.AddItem("Item 4")
		.AddItem("Item 5")
		.AddItem("Item 6")
		.AddItem("Item 7")
		.AddItem("Item 8")
		.AddItem("Item 9")
		.AddItem("Item 10")
	End With
	.EndUpdate()
End With
966
How do I sort the index column as numeric (Method 2)

' AddItem event - Occurs after a new Item has been inserted to Items collection.
Private Sub Exgrid1_AddItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddItem
	With Exgrid1
		With .Items
			.set_CellSortData(Item,1,.get_CellCaption(Item,1))
		End With
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.ColumnAutoResize = True
	.ShowFocusRect = False
	With .Columns.Add("Next")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellPaddingLeft,4)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exHeaderPaddingLeft,4)
	End With
	With .Columns.Add("Index")
		.AllowSizing = False
		.Width = 48
		.FormatColumn = "(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)"
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
		.SortType = exontrol.EXGRIDLib.SortTypeEnum.SortCellData
		.Position = 0
	End With
	With .Items
		.AddItem("Item 1")
		.AddItem("Item 2")
		.AddItem("Item 3")
		.AddItem("Item 4")
		.AddItem("Item 5")
		.AddItem("Item 6")
		.AddItem("Item 7")
		.AddItem("Item 8")
		.AddItem("Item 9")
		.AddItem("Item 10")
	End With
	.EndUpdate()
End With
965
How do I sort the index column as numeric (Method 1)

With Exgrid1
	.BeginUpdate()
	With .Columns.Add("Sort Index As String (Default)")
		.FormatColumn = "1 index ``"
	End With
	With .Columns.Add("Sort Index As Numeric")
		.ComputedField = "%C0"
		.SortType = exontrol.EXGRIDLib.SortTypeEnum.SortNumeric
	End With
	With .Items
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
	End With
	.EndUpdate()
End With
964
How can I put icons/images into buttons

With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = True
	.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq" & _
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" & _
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" & _
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
	With .Columns.Add("C+B")
		.AllowSizing = False
		.Width = 48
		.FormatColumn = "` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `"
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasButton,True)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellButtonAutoWidth,True)
	End With
	.Columns.Add("")
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exVLines
	.DefaultItemHeight = 20
	With .Items
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
	End With
	.EndUpdate()
End With
963
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column

' ButtonClick event - Occurs when user clicks on the cell's button.
Private Sub Exgrid1_ButtonClick(ByVal sender As System.Object,ByVal Item As Integer,ByVal ColIndex As Integer,ByVal Key As Object) Handles Exgrid1.ButtonClick
	With Exgrid1
		Debug.Print( "ButtonClick" )
		Debug.Print( Item )
		Debug.Print( Key )
	End With
End Sub

' CellStateChanged event - Fired after cell's state has been changed.
Private Sub Exgrid1_CellStateChanged(ByVal sender As System.Object,ByVal Item As Integer,ByVal ColIndex As Integer) Handles Exgrid1.CellStateChanged
	With Exgrid1
			Debug.Print( "CellStateChanged" )
		Debug.Print( Item )
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = True
	With .Columns.Add("")
		.AllowSizing = False
		.Width = 32
		.FormatColumn = "1 index ``"
	End With
	With .Columns.Add("Def")
		.AllowSizing = False
		.Width = 48
		.FormatColumn = "`     `"
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasButton,True)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellButtonAutoWidth,True)
	End With
	.Columns.Add("")
	With .Items
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
		.AddItem("")
	End With
	.EndUpdate()
End With
962
I have columns that look up the same data. (e.g. different contact) so both could / should use the same editor. Is this possible, to use other column's editor

Dim h,var_Editor
With Exgrid1
	.BeginUpdate()
	.SelBackColor = .BackColor
	.SelForeColor = .ForeColor
	With .Columns
		With .Add("Pos")
			.Width = 32
			.AllowSizing = False
			.FormatColumn = "1 index ``"
		End With
		var_Editor = .Add("C1").Editor
		With var_Editor
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.ColorListType
			.ClearItems()
			.AddItem(255,"Red Color")
			.AddItem(16711680,"Blue Color")
			.AddItem(65280,"Green Color")
		End With
		.Add("C2").Editor.EditType = exontrol.EXGRIDLib.EditTypeEnum.CloneType Or exontrol.EXGRIDLib.EditTypeEnum.EditType
		.Add("C3").Editor.EditType = exontrol.EXGRIDLib.EditTypeEnum.CloneType Or exontrol.EXGRIDLib.EditTypeEnum.EditType
	End With
	With .Items
		h = .AddItem("")
		.set_CellValue(h,1,16711680)
		.set_CellValue(h,2,65280)
		.set_CellValue(h,3,255)
		h = .AddItem("")
		.set_CellValue(h,1,255)
		.set_CellValue(h,2,16711680)
		.set_CellValue(h,3,65280)
	End With
	.EndUpdate()
End With
961
Is there an easy way to get an effect like in a Microsoft Access / SQL-Server Table view, where you can scroll-up till the last row containing data is displayed as top-row

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.ScrollBars = exontrol.EXGRIDLib.ScrollBarsEnum.exVScrollEmptySpace Or exontrol.EXGRIDLib.ScrollBarsEnum.exBoth
	.set_ScrollPos(True,.Items.ItemCount)
	.EndUpdate()
End With
960
Does filtering work with umlauts / accents characters
With Exgrid1
	.BeginUpdate()
	With .Columns.Add("Names")
		.DisplayFilterButton = True
		.FilterType = exontrol.EXGRIDLib.FilterTypeEnum.exPattern
	End With
	With .Items
		.AddItem("Mantel")
		.AddItem("Mechanik")
		.AddItem("Motor")
		.AddItem("Murks")
		.AddItem("Märchen")
		.AddItem("Möhren")
		.AddItem("Mühle")
		.AddItem("Sérigraphie")
	End With
	.Columns.Item(0).Filter = "*ä*"
	.ApplyFilter()
	.EndUpdate()
End With
959
How FullPath method works

Dim h
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.Columns.Add("C1")
	.Columns.Add("C2")
	With .Items
		h = .AddItem("Root")
		.set_CellValue(h,1,"A")
		.set_CellValue(.InsertItem(h,Nothing,"Child 1"),1,"B")
		.set_CellValue(.InsertItem(h,Nothing,"Child 2"),1,"C")
		.set_ExpandItem(h,True)
	End With
	.SearchColumnIndex = 1
	Debug.Print( .SearchColumnIndex )
	Debug.Print( .get_FullPath(.Items.get_ItemByIndex(2)) )
	.SearchColumnIndex = 0
	Debug.Print( .SearchColumnIndex )
	Debug.Print( .get_FullPath(.Items.get_ItemByIndex(2)) )
	.EndUpdate()
End With
958
Can I set the search box / filterbarprompt to invisible, so I can use my own input and *string* via VBA
Dim h0
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = True
	.ContinueColumnScroll = False
	.MarkSearchColumn = False
	.SearchColumnIndex = 1
	.FilterBarHeight = 0
	.FilterBarPromptVisible = exontrol.EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible
	With .Columns
		.Add("Name").Width = 96
		.Add("Title").Width = 96
		.Add("City")
	End With
	With .Items
		h0 = .AddItem("Nancy Davolio")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"Seattle")
		h0 = .AddItem("Andrew Fuller")
		.set_CellValue(h0,1,"Vice President, Sales")
		.set_CellValue(h0,2,"Tacoma")
		.set_SelectItem(h0,True)
		h0 = .AddItem("Janet Leverling")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"Kirkland")
		h0 = .AddItem("Margaret Peacock")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"Redmond")
		h0 = .AddItem("Steven Buchanan")
		.set_CellValue(h0,1,"Sales Manager")
		.set_CellValue(h0,2,"London")
		h0 = .AddItem("Michael Suyama")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"London")
		h0 = .AddItem("Robert King")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"London")
		h0 = .AddItem("Laura Callahan")
		.set_CellValue(h0,1,"Inside Sales Coordinator")
		.set_CellValue(h0,2,"Seattle")
		h0 = .AddItem("Anne Dodsworth")
		.set_CellValue(h0,1,"Sales Representative")
		.set_CellValue(h0,2,"London")
	End With
	.FilterBarPromptPattern = "London"
	.EndUpdate()
End With
957
How to load a hierarchy using the control's DataSource property (Parent-ID-Relation)

' AddItem event - Occurs after a new Item has been inserted to Items collection.
Private Sub Exgrid1_AddItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddItem
	With Exgrid1
		With .Items
			.SetParent(Item,.get_FindItem(.get_CellValue(Item,"ReportsTo"),"EmployeeID"))
		End With
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.ColumnAutoResize = False
	.ContinueColumnScroll = False
	rs = New ADODB.Recordset()
	With rs
		.Open("SELECT * FROM Employees ORDER BY ReportsTo","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.Items.set_ExpandItem(0,True)
	.EndUpdate()
End With
956
Is it possible to select the entire row/line, when user clicks the first column, and select individually the rest of cells, while user clicks any other column

' MouseDown event - Occurs when the user presses a mouse button.
Private Sub Exgrid1_MouseDownEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles Exgrid1.MouseDownEvent
	Dim c,hit,i
	With Exgrid1
		i = .get_ItemFromPoint(-1,-1,c,hit)
		.FullRowSelect = .Columns.Item(c).Data
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.HeaderHeight = 22
	.HeaderAppearance = exontrol.EXGRIDLib.AppearanceEnum.Flat
	.BackColorLock = Color.FromArgb(240,240,240)
	.BackColorHeader = .BackColorLock
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	.SortBarVisible = False
	.AllowGroupBy = True
	.ReadOnly = exontrol.EXGRIDLib.ReadOnlyEnum.exReadOnly
	.ShowFocusRect = False
	.CountLockedColumns = 1
	.AutoDrag = exontrol.EXGRIDLib.AutoDragEnum.exAutoDragScroll
	.SingleSort = False
	.ColumnsAllowSizing = True
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.GridLineStyle = exontrol.EXGRIDLib.GridLinesStyleEnum.exGridLinesSolid
	.GridLineColor = Color.FromArgb(220,220,220)
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.Columns.Item(0).Data = -1
	.Layout = "singlesort=""C5:1"";multiplesort="" C1:2"""
	.EndUpdate()
End With
955
The user are not able to size the columns at runtime when using HeaderAppearance property on zero
With Exgrid1
	.VisualAppearance.Add(1,"gBFLBCJwBAEHhEJAAEhABJEIQAAYAQGKIYBkAKBQAGaAoDDcMQ5QwAAyDGKEEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQZonKK3L" & _
"hGCYBgIA=")
	.HeaderAppearance = &H1000000
	.Columns.Add(1)
	.Columns.Add(2)
	.Columns.Add(3)
End With
954
Is it possible to embed the exGauge into the exGrid control

' ItemOleEvent event - Fired when an ActiveX control hosted by an item has fired an event.
Private Sub Exgrid1_ItemOleEvent(ByVal sender As System.Object,ByVal Item As Integer,ByVal Ev As exontrol.EXGRIDLib.OleEvent) Handles Exgrid1.ItemOleEvent
	Dim v
	With Exgrid1
		With .Items.get_ItemObject(Exgrid1.Items.get_ItemByIndex(2))
			v = .FormatABC("date(`now`)")
			.Layers.Item("sec").Value = v
			.Layers.Item("min").Value = v
			.Layers.Item("hour").Value = v
		End With
	End With
End Sub

' MouseMove event - Occurs when the user moves the mouse.
Private Sub Exgrid1_MouseMoveEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles Exgrid1.MouseMoveEvent
	With Exgrid1
		With .Items.get_ItemObject(Exgrid1.Items.get_ItemByIndex(2))
			.TimerInterval = 1000
		End With
	End With
End Sub

Dim h,v
With Exgrid1
	.BeginUpdate()
	.ScrollBySingleLine = True
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exThinLine
	.ScrollBySingleLine = True
	.Columns.Add("Default")
	With .Items
		h = .AddItem("Normal Item")
		h = .AddItem("Gauge-Clock Inside")
		.set_ExpandItem(h,True)
		h = .InsertControlItem(h,"Exontrol.Gauge")
		.set_ItemHeight(h,256)
		With .get_ItemObject(h)
			.PicturesPath = "C:\Program Files\Exontrol\ExGauge\Sample\Design\Circular\Clock"
			.set_DefaultLayer(185,2)
			.Layers.Count = 4
			With .Layers.Item(0)
				.Background.Picture.Name = "vista_clock.png"
			End With
			With .Layers.Item(1)
				.Position = 3
				.Key = "sec"
				.OnDrag = 2
				.Selectable = False
				.Background.Picture.Name = "second-hand.png"
				.ValueToRotateAngle = "((2:=(((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - " & _
"floor(=:1)) * 60 )) - floor(=:2) ) * 360"
				.RotateAngleToValue = "value / 360 / 24 / 60"
			End With
			With .Layers.Item(2)
				.Position = 2
				.Key = "min"
				.OnDrag = 2
				.Selectable = False
				.Background.Picture.Name = "Minute.png"
				.ValueToRotateAngle = "((1:=( ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) ) * 24 ))  - floor(" & _
"=:1)) * 360"
				.RotateAngleToValue = "value / 360 / 24 / 60"
			End With
			With .Layers.Item(3)
				.Position = 1
				.Key = "hour"
				.OnDrag = 2
				.Background.Picture.Name = "Hour.png"
				.ValueToRotateAngle = "2 * 360 * ( (0:=(value < 0 ? floor(value) + 1 - value : value - floor(value))) < 0.5 ? =:0 : (0:= (=:0 - 0.5)) )"
				.RotateAngleToValue = "value / 360 * 0.5"
			End With
			v = .FormatABC("date(`now`)")
			.Layers.Item("sec").Value = v
			.Layers.Item("min").Value = v
			.Layers.Item("hour").Value = v
		End With
		h = .AddItem("Normal Item")
	End With
	.EndUpdate()
End With
953
What's the difference between merge cells and divider item

' AddItem event - Occurs after a new Item has been inserted to Items collection.
Private Sub Exgrid1_AddItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddItem
	With Exgrid1
		With .Items
			.set_CellBackColor(Item,0,Color.FromArgb(240,240,240))
			.set_ItemHasChildren(Item,True)
		End With
	End With
End Sub

Dim h
With Exgrid1
	.BeginUpdate()
	.TreeColumnIndex = 0
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.Columns.Add("C1").FormatColumn = "1 index `A-Z`"
	.Columns.Add("C2").FormatColumn = "1 index ``"
	.Columns.Add("C3").FormatColumn = "1 index ``"
	With .Items
		.AddItem()
		.AddItem()
		h = .AddItem()
		.set_CellMerge(h,0,1)
		.set_FormatCell(h,0,"`merge cells`")
		.set_CellHAlignment(h,0,exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment)
		h = .AddItem()
		.set_ItemDivider(h,0)
		.set_CellHAlignment(h,0,exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment)
		.set_FormatCell(h,0,"`item divider`")
		.AddItem()
		.AddItem()
	End With
	.EndUpdate()
End With
952
is it possible to resize a column with the mouse without changing the width of the next column

With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	.Columns.Add("Column 1").Width = 256
	.Columns.Add("Column 2").Width = 512
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.EndUpdate()
End With
951
How do I ensure that the newly item fits the control's client area

' ButtonClick event - Occurs when user clicks on the cell's button.
Private Sub Exgrid1_ButtonClick(ByVal sender As System.Object,ByVal Item As Integer,ByVal ColIndex As Integer,ByVal Key As Object) Handles Exgrid1.ButtonClick
	Dim h
	With Exgrid1
		With .Items
			h = .AddItem("")
			.set_SelectItem(h,True)
			.EnsureVisibleItem(h)
		End With
		.FocusColumnIndex = 0
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	With .Columns.Add("")
		.AllowSizing = False
		.AllowDragging = False
		.AllowSort = False
		.Width = 24
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasButton,True)
	End With
	.Columns.Add("Position").FormatColumn = "1 apos `A-Z`"
	.CountLockedColumns = 1
	With .Items
		.AddItem("")
		.AddItem("")
		.AddItem("")
	End With
	.EndUpdate()
End With
950
How do I find the predefined string for giving value, or giving identifier for specified predefined caption of editor

' Change event - Occurs when the user changes the cell's content.
Private Sub Exgrid1_Change(ByVal sender As System.Object,ByVal Item As Integer,ByVal ColIndex As Integer,ByRef NewValue As Object) Handles Exgrid1.Change
	With Exgrid1
		Debug.Print( "FindItem(numeric) is " )
		Debug.Print( NewValue )
		Debug.Print( .Columns.Item(0).Editor.get_FindItem(NewValue) )
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	With .Columns.Add("DropDownList")
		With .Editor
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.DropDownListType
			.AddItem(1,"Ken Robinson")
			.AddItem(2,"Dave Nichols")
			.AddItem(3,"Zane Thomas")
			.AddItem(4,"James Shields")
		End With
	End With
	With .Columns.Add("CellValue")
		.FormatColumn = "%0"
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellBackColor,15790320)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exHeaderBackColor,.get_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellBackColor))
	End With
	With .Columns.Add("CellCaption")
		.FormatColumn = "%C0"
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellBackColor,15790320)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exHeaderBackColor,.get_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellBackColor))
	End With
	With .Items
		.AddItem(1)
		.AddItem(Exgrid1.Columns.Item(0).Editor.get_FindItem("Zane Thomas"))
		.AddItem(2)
	End With
	.EndUpdate()
End With
949
How can I align captions of items with checkbox, with items with no checkbox

With Exgrid1
	.BeginUpdate()
	.Columns.Add("Default")
	With .Items
		.set_CellImages(.AddItem(0),0,"1")
		.set_CellHasCheckBox(.AddItem(1),0,True)
		.set_CellImages(.AddItem(2),0,"1")
	End With
	.EndUpdate()
End With
948
How can I prevent sorting a column

Dim h
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	With .Columns.Add("Default")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.PartialCheck = True
		.AllowSort = False
	End With
	With .Items
		h = .AddItem("Root")
		.InsertItem(h,Nothing,"Child 1")
		.InsertItem(h,Nothing,"Child 2")
		.set_ExpandItem(h,True)
	End With
	.EndUpdate()
End With
947
Is there a possibility to group without moving and showing the column to the SortBar

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SingleSort = False
	.SortBarVisible = False
	.AllowGroupBy = True
	.Layout = "singlesort=""C5:1"";multiplesort="" C1:2"""
	.EndUpdate()
End With
946
How can I show each group header ( not-subroup ), with a different background color, while alternate background colors for inside items

' LayoutChanged event - Occurs when column's position or column's size is changed.
Private Sub Exgrid1_LayoutChanged(ByVal sender As System.Object) Handles Exgrid1.LayoutChanged
	With Exgrid1
		.Refresh()
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SingleSort = False
	.SortBarVisible = True
	.AllowGroupBy = True
	.Columns.Item(1).SortOrder = True
	With .Columns.Add("Position")
		.FormatColumn = "(0:= (1 rpos '')) right ( ( 1:= ( =:0 rfind `.` ) ) != -1 ? =:1 : len(=:0))"
		.Visible = False
	End With
	With .Columns.Add("Position")
		.FormatColumn = "(1 rpos '') contains '.'"
		.Visible = False
	End With
	.ConditionalFormats.Add("(%C13 mod 2) != 0").BackColor = Color.FromArgb(240,240,240)
	.ConditionalFormats.Add("%C14 = 0").BackColor = Color.FromArgb(190,190,190)
	.EndUpdate()
End With
945
What is the difference between %0 and %C0, when using in expressions ( format, conditional format, computed fields, and so on )

With Exgrid1
	.BeginUpdate()
	.HeaderAppearance = exontrol.EXGRIDLib.AppearanceEnum.Etched
	.HeaderHeight = 24
	.ScrollBySingleLine = True
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.Columns.Add("Value").set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
	With .Columns.Add("FormatColumn = `%0` ~ CellValue")
		.FormatColumn = "%0"
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,False)
	End With
	With .Columns.Add("FormatColumn = `%C0`~ CellCaption")
		.FormatColumn = "%C0"
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,False)
	End With
	With .Items
		.AddItem(1.1234)
		.set_CellValueFormat(.AddItem("<sha ;;0>This <fgcolor=FF0000>is a <s><b>HTM</fgcolor>L</b> text</s>."),0,exontrol.EXGRIDLib.ValueFormatEnum.exHTML)
		With .get_CellEditor(.AddItem(3))
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.CheckListType
			.AddItem(1,"Border")
			.AddItem(2,"Thick")
			.AddItem(4,"Shadow")
		End With
		.set_FormatCell(.AddItem(10000),0,"`<b>` + currency(value)")
	End With
	.EndUpdate()
End With
944
How can I alternate colors for each group header ( not-subroup ), with a different background color, while items of the same group showing with a different color

' LayoutChanged event - Occurs when column's position or column's size is changed.
Private Sub Exgrid1_LayoutChanged(ByVal sender As System.Object) Handles Exgrid1.LayoutChanged
	With Exgrid1
		.Refresh()
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SingleSort = False
	.SortBarVisible = True
	.AllowGroupBy = True
	.Columns.Item(1).SortOrder = True
	With .Columns.Add("Position")
		.FormatColumn = "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))"
		.Visible = False
	End With
	With .Columns.Add("Position")
		.FormatColumn = "(1 rpos '') contains '.'"
		.Visible = False
	End With
	.ConditionalFormats.Add("(%C13 mod 2) != 0").BackColor = Color.FromArgb(240,240,240)
	.ConditionalFormats.Add("%C14 = 0").BackColor = Color.FromArgb(190,190,190)
	.EndUpdate()
End With
943
How can I highlight each group header, with a different background color (method 2)

' AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
Private Sub Exgrid1_AddGroupItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddGroupItem
	With Exgrid1
		.Items.set_ItemBackColor(Item,Color.FromArgb(190,190,190))
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SingleSort = False
	.SortBarVisible = True
	.AllowGroupBy = True
	.Columns.Item(1).SortOrder = True
	.EndUpdate()
End With
942
How can I highlight each group header ( not-subroup ), with a different background color (method 1)

' LayoutChanged event - Occurs when column's position or column's size is changed.
Private Sub Exgrid1_LayoutChanged(ByVal sender As System.Object) Handles Exgrid1.LayoutChanged
	With Exgrid1
		.Refresh()
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SingleSort = False
	.SortBarVisible = True
	.AllowGroupBy = True
	.Columns.Item(1).SortOrder = True
	With .Columns.Add("Position")
		.FormatColumn = "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))"
		.Visible = False
	End With
	With .Columns.Add("Position")
		.FormatColumn = "(1 rpos '') contains '.'"
		.Visible = False
	End With
	.ConditionalFormats.Add("%C14 = 0").BackColor = Color.FromArgb(190,190,190)
	.EndUpdate()
End With
941
The BackColorAlternate displays each second row with a different background color. Is it possible to apply a different background color, for each sub-tree, ConditionalFormats, Add

' LayoutChanged event - Occurs when column's position or column's size is changed.
Private Sub Exgrid1_LayoutChanged(ByVal sender As System.Object) Handles Exgrid1.LayoutChanged
	With Exgrid1
		.Refresh()
	End With
End Sub

' Sort event - Fired when the control sorts a column.
Private Sub Exgrid1_Sort(ByVal sender As System.Object) Handles Exgrid1.Sort
	With Exgrid1
		.Refresh()
	End With
End Sub

Dim h
With Exgrid1
	.BeginUpdate()
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	With .Columns.Add("P1")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.PartialCheck = True
	End With
	With .Columns.Add("P2")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
		.PartialCheck = True
	End With
	With .Items
		h = .AddItem("Root 1")
		.InsertItem(h,Nothing,"Child 1")
		.InsertItem(h,Nothing,"Child 2")
		.set_ExpandItem(h,True)
		h = .AddItem("Root 2")
		.InsertItem(h,Nothing,"Child 1")
		.InsertItem(h,Nothing,"Child 2")
		.set_ExpandItem(h,True)
		h = .AddItem("Root 2")
		.InsertItem(h,Nothing,"Child 1")
		.InsertItem(h,Nothing,"Child 2")
		.set_ExpandItem(h,True)
	End With
	With .Columns.Add("Position")
		.FormatColumn = "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))"
		.Visible = False
	End With
	.ConditionalFormats.Add("(%C2 mod 2) != 0").BackColor = Color.FromArgb(240,240,240)
	.EndUpdate()
End With
940
The BackColorAlternate displays each second row with a different background color. Is it possible to apply a different background color, for 2nd, 3rd, 4th, row, and so on

' LayoutChanged event - Occurs when column's position or column's size is changed.
Private Sub Exgrid1_LayoutChanged(ByVal sender As System.Object) Handles Exgrid1.LayoutChanged
	With Exgrid1
		.Refresh()
	End With
End Sub

' Sort event - Fired when the control sorts a column.
Private Sub Exgrid1_Sort(ByVal sender As System.Object) Handles Exgrid1.Sort
	With Exgrid1
		.Refresh()
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	With .Columns.Add("Position")
		.FormatColumn = "1 apos ''"
		.Visible = False
	End With
	.ConditionalFormats.Add("(%C13 mod 5) = 1").BackColor = Color.FromArgb(128,128,128)
	.ConditionalFormats.Add("(%C13 mod 5) = 2").BackColor = Color.FromArgb(164,164,164)
	.ConditionalFormats.Add("(%C13 mod 5) = 3").BackColor = Color.FromArgb(190,190,190)
	.ConditionalFormats.Add("(%C13 mod 5) = 4").BackColor = Color.FromArgb(240,240,240)
	.EndUpdate()
End With
939
The BackColorAlternate displays each second row with a different background color. The question I have it is possible to apply a different background color for 3rd, 4th, row, and so on

' LayoutChanged event - Occurs when column's position or column's size is changed.
Private Sub Exgrid1_LayoutChanged(ByVal sender As System.Object) Handles Exgrid1.LayoutChanged
	With Exgrid1
		.Refresh()
	End With
End Sub

' Sort event - Fired when the control sorts a column.
Private Sub Exgrid1_Sort(ByVal sender As System.Object) Handles Exgrid1.Sort
	With Exgrid1
		.Refresh()
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	With .Columns.Add("Position")
		.FormatColumn = "1 apos ''"
		.Visible = False
	End With
	.ConditionalFormats.Add("(%C13 mod 4) = 0").BackColor = Color.FromArgb(240,240,240)
	.EndUpdate()
End With
938
The BackColorAlternate looks fine for flat tables, but how about using it when displaying a hierarchy/tree, like grouping rows. The sample alternate colors for each group found

' LayoutChanged event - Occurs when column's position or column's size is changed.
Private Sub Exgrid1_LayoutChanged(ByVal sender As System.Object) Handles Exgrid1.LayoutChanged
	With Exgrid1
		.Refresh()
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.HasLines = exontrol.EXGRIDLib.HierarchyLineEnum.exNoLine
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SingleSort = False
	.SortBarVisible = True
	.AllowGroupBy = True
	.Columns.Item(1).SortOrder = True
	With .Columns.Add("Position")
		.FormatColumn = "(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))"
		.Visible = False
	End With
	.ConditionalFormats.Add("(%C13 mod 2) != 0").BackColor = Color.FromArgb(240,240,240)
	.EndUpdate()
End With
937
I need to display sub-totals in the grouping items. Is there any solution on this

' AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
Private Sub Exgrid1_AddGroupItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddGroupItem
	With Exgrid1
		With .Items
			.set_ItemDivider(Item,-1)
			.set_EnableItem(Item,False)
			.set_CellValueFormat(Item,Exgrid1.TreeColumnIndex,exontrol.EXGRIDLib.ValueFormatEnum.exHTML)
			.set_FormatCell(Item,Exgrid1.TreeColumnIndex,"%1")
			.set_CellValueFormat(Item,"Freight",exontrol.EXGRIDLib.ValueFormatEnum.exTotalField Or exontrol.EXGRIDLib.ValueFormatEnum.exHTML)
			.set_CellValue(Item,"Freight","sum(current,dir,%6)")
			.set_FormatCell(Item,"Freight","`<b>` + currency(value)")
		End With
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.SelBackMode = exontrol.EXGRIDLib.BackModeEnum.exTransparent
	.BackColorSortBar = Color.FromArgb(240,240,240)
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SortBarVisible = True
	.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
	.AllowGroupBy = True
	.Columns.Item(1).SortOrder = exontrol.EXGRIDLib.SortOrderEnum.SortAscending
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exGroupLinesOutside
	.Columns.Item("ShipVia").DisplayFilterButton = True
	.EndUpdate()
End With
936
I use a subtotal in exTop-Item, after grouping the item shows 0. What is the solution

Dim h,rs
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SingleSort = False
	.AllowGroupBy = True
	.SortBarVisible = True
	.BackColorSortBar = .BackColor
	.Columns.Item(5).SortOrder = exontrol.EXGRIDLib.SortOrderEnum.SortAscending
	.Columns.Item(6).FormatColumn = "currency(value)"
	With .Items
		.set_LockedItemCount(exontrol.EXGRIDLib.VAlignmentEnum.exTop,1)
		h = .get_LockedItem(exontrol.EXGRIDLib.VAlignmentEnum.exTop,0)
		.set_ItemBackColor(h,Color.FromArgb(240,240,240))
		.set_CellBackColor(h,6,Color.FromArgb(190,190,190))
		.set_CellValue(h,6,"sum(all,rec,%6)")
		.set_CellValueFormat(h,6,exontrol.EXGRIDLib.ValueFormatEnum.exTotalField)
	End With
	.Refresh()
	.EndUpdate()
End With
935
I would like to avoid manual typing in the date-cell because user often type wrong things (no decimal points and so on) and so the todays-date is generated for the cell. What can be done

' KeyPress event - Occurs when the user presses and releases an ANSI key.
Private Sub Exgrid1_KeyPress(ByVal sender As System.Object,ByRef KeyAscii As Short) Handles Exgrid1.KeyPress
	With Exgrid1
		Debug.Print( "if .Editying != 0 then" )
		Debug.Print( .Editing )
		KeyAscii = 0
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	With .Columns
		.Add("Tasks")
		With .Add("Date")
			.Editor.EditType = exontrol.EXGRIDLib.EditTypeEnum.DateType
			.Width = 128
		End With
	End With
	With .Items
		.set_CellValue(.AddItem("Item 1"),1,#9/21/2006#)
		.set_CellValue(.AddItem("Item 2"),1,#12/22/2015#)
		.set_CellValue(.AddItem("Item 3"),1,#1/10/2015#)
	End With
	.EndUpdate()
End With
934
The control does not ensure the item to fit the control's client area once the user clicks the cell's button or check box. What can be done
' MouseDown event - Occurs when the user presses a mouse button.
Private Sub Exgrid1_MouseDownEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles Exgrid1.MouseDownEvent
	' Items.EnsureVisibleItem(ItemFromPoint(-1,-1,c,hit))
End Sub

With Exgrid1
	.BeginUpdate()
	.TreeColumnIndex = -1
	.SelForeColor = .ForeColor
	With .Columns.Add("Buttons")
		.Alignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasButton,True)
	End With
	With .Items
		.AddItem("Button A")
		.AddItem("Button B")
		.AddItem("Button C")
	End With
	.EndUpdate()
End With
933
How do you save the index number from a drop down to a database

Dim rs
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	With .Columns.Item("ShipVia")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellBackColor,15790320)
		.Position = 1
		.Width = 96
		With .Editor
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.DropDownListType
			.AddItem(1,"Speedy Express")
			.AddItem(2,"United Package")
			.AddItem(3,"Federal Shipping")
		End With
	End With
	.EndUpdate()
End With
932
Is there a way to set the column width and have it stay when refreshing using the data source

Dim rs
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.Layout = "gBjAAwAAuABmABpABsAB0ABlAByhoAPIAOEPAA9gYABoABQAgUEg0XN4AOcJicKkpujIAGMcj0gjcGk8QhkQgUOjUEjsfkMFAB2lEnhRihcYjUvnsykQAO8oMkTNEtG" & _
"gAGUwn0uoEIhUMh0QiUOisXiE7rEyl8jAElokptYAllmpcCtMmjE3mU6jdzrUGoUKttGvFJs90oFPhVRh1Twg4wtaptco9fiMTsdIvcxw1Nkl2hUOlVwlsvnmayFAmtH" & _
"nETuWm0lAv+eAGCzFK10zp1QqVUAGOvkvuuSr0YsMUi2Y0tZ4FAztt0FvuNa23Kvt2m0YnMt5No6uxwOq0eP5cGxAAxQAxgAGwAqu/q1blHDsGW49lzPUq9qtko58r8K" & _
"rvc/LrPA7LWvw2ChpQ2j7Om7kBPK870hu+6ZQE4SJvmsT6u0x8BOa/iUP8jUANNATUrxAsKIFATvQU8DCL5B7dMWlr1u2gQZvgrsMMrDSyQ4vkcv02T+tEjUcyC1C7uw" & _
"1kVABISgwSosXq1JLyRm9EaycqqDQuyjisu+0bvY5i3udEMjTIvkuQHFEmzHNkWymwcqtNNkIN2jUbMeGsdMm4j6R/AyZT7IcztC6M+r5Qs2yYvUx0ZOTZypBqBUZPEa" & _
"Max71y6+MeTBDdBoFTjjv2z80Oi9a+VJE9HSA01SUlBbw1Ww8sPSqtFNNCdOx3L9AuQx9eVLIlUJbCa+WHVrV0fYUEMBF06UqAFh0xLLCT7abHV7P8MuNQUnW3YlDugl" & _
"rfNNcVlrzV6s3FWVKMfcVrPSq6rva0wcz8+Ue2/YK+XzQ0QUQlt83/JTr2ZdiZYBKNoTm2rH4ZedzSckqGDqAA2tEk7CSQmKEJKgWMY5CmQJlkaZYsAGMY0liFJYqKID" & _
"xhSpjCu0vUBQappOgSJZUhlBtTmyJIEqaBZVljRZe8yMZnoMl4SjQRI3qal3U7OjqPpOXNFmIAadCiHIkiDV6RjOla7puFKFnjK5/ta7Z6t6GIYkqEIQ1NmqWgIA="
	.EndUpdate()
End With
931
Is it possible to decode/view the control's Layout property

With Exgrid1
	.BeginUpdate()
	.SingleSort = False
	.Columns.Add("C0")
	.Columns.Add("C1").SortOrder = exontrol.EXGRIDLib.SortOrderEnum.SortAscending
	.Columns.Add("C2")
	' Add 'exontrol.exprint.dll(ExPrint.dll)' reference to your project.
	With New exontrol.EXPRINTLib.exprint()
		Debug.Print( .get_Decode64TextW(Exgrid1.Layout) )
	End With
	.EndUpdate()
End With
930
How do I programmatically sort by multiple columns

With Exgrid1
	.BeginUpdate()
	.SingleSort = False
	.Columns.Add("C0")
	.Columns.Add("C1")
	.Columns.Add("C2")
	.Layout = "multiplesort=""C2:1 C1:2 C0:2"""
	.EndUpdate()
End With
929
Do you have any Fit-To-Page options when printing the control (W x T, Fit-To )

Dim rs
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	.ContinueColumnScroll = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.EndUpdate()
	' Add 'exontrol.exprint.dll(ExPrint.dll)' reference to your project.
	With New exontrol.EXPRINTLib.exprint()
		.Options = "FitToPage =2 x 1"
		.PrintExt = Exgrid1
		.Preview()
	End With
End With
928
Do you have any Fit-To-Page options when printing the control ( x T, Fit-To Tall )

Dim rs
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	.ContinueColumnScroll = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.EndUpdate()
	' Add 'exontrol.exprint.dll(ExPrint.dll)' reference to your project.
	With New exontrol.EXPRINTLib.exprint()
		.Options = "FitToPage = x 2"
		.PrintExt = Exgrid1
		.Preview()
	End With
End With
927
Do you have any Fit-To-Page options when printing the control ( W x, Fit-To Wide )

Dim rs
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	.ContinueColumnScroll = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.EndUpdate()
	' Add 'exontrol.exprint.dll(ExPrint.dll)' reference to your project.
	With New exontrol.EXPRINTLib.exprint()
		.Options = "FitToPage = 2 x"
		.PrintExt = Exgrid1
		.Preview()
	End With
End With
926
Do you have any Fit-To-Page options when printing the control ( percent view, Adjust-To )

Dim rs
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	.ContinueColumnScroll = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.EndUpdate()
	' Add 'exontrol.exprint.dll(ExPrint.dll)' reference to your project.
	With New exontrol.EXPRINTLib.exprint()
		.Options = "FitToPage = 50%"
		.PrintExt = Exgrid1
		.Preview()
	End With
End With
925
How can I get notified once the user expands a column

' LayoutChanged event - Occurs when column's position or column's size is changed.
Private Sub Exgrid1_LayoutChanged(ByVal sender As System.Object) Handles Exgrid1.LayoutChanged
	With Exgrid1
		Debug.Print( "Column-Expanded" )
		Debug.Print( .Columns.Item("C0").Expanded )
	End With
End Sub

Dim h
With Exgrid1
	.BeginUpdate()
	.ShowFocusRect = False
	.ColumnAutoResize = False
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.BackColorLevelHeader = .BackColor
	With .Columns
		With .Add("C0")
			.ExpandColumns = "0,1,2"
			.DisplayExpandButton = True
		End With
		.Add("C1")
		.Add("C2")
	End With
	With .Items
		h = .AddItem("Cell 0.0")
		.set_CellValue(h,1,"Cell 0.1")
		.set_CellValue(h,2,"Cell 0.2")
		h = .AddItem("Cell 1.0")
		.set_CellValue(h,1,"Cell 1.1")
		.set_CellValue(h,2,"Cell 1.2")
	End With
	.EndUpdate()
End With
924
I am using expandable headers, the question is how I can display the column itself, not just the child columns

Dim h
With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.BackColorLevelHeader = .BackColor
	With .Columns
		With .Add("C0")
			.ExpandColumns = "0,1,2"
			.DisplayExpandButton = True
		End With
		.Add("C1")
		.Add("C2")
	End With
	With .Items
		h = .AddItem("Cell 0.0")
		.set_CellValue(h,1,"Cell 0.1")
		.set_CellValue(h,2,"Cell 0.2")
		h = .AddItem("Cell 1.0")
		.set_CellValue(h,1,"Cell 1.1")
		.set_CellValue(h,2,"Cell 1.2")
	End With
	.EndUpdate()
End With
923
How do I layout expandable columns

With Exgrid1
	.BeginUpdate()
	.ColumnAutoResize = False
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exAllLines
	.BackColorLevelHeader = .BackColor
	With .Columns
		With .Add("C0")
			.ExpandColumns = "1,2"
			.DisplayExpandButton = True
		End With
		.Add("C1")
		.Add("C2")
		.Add("C3")
		With .Add("C4")
			.ExpandColumns = "5,6"
			.DisplayExpandButton = True
		End With
		.Add("C5")
		With .Add("C6")
			.ExpandColumns = "6,7"
			.DisplayExpandButton = True
		End With
		.Add("C7")
	End With
	.EndUpdate()
	.Columns.Item("C4").Expanded = False
End With
922
How do I make the control read-only (method 2)

' Edit event - Occurs just before editing the focused cell.
Private Sub Exgrid1_EditEvent(ByVal sender As System.Object,ByVal Item As Integer,ByVal ColIndex As Integer,ByRef Cancel As Boolean) Handles Exgrid1.EditEvent
	With Exgrid1
		Cancel = True
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	With .Columns.Add("Editor").Editor
		.EditType = exontrol.EXGRIDLib.EditTypeEnum.CheckListType
		.AddItem(1,"One")
		.AddItem(2,"Two")
	End With
	With .Columns.Add("Check")
		With .Editor
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.CheckValueType
			.set_Option(exontrol.EXGRIDLib.EditorOptionEnum.exCheckValue1,2)
		End With
	End With
	With .Items
		.set_CellValue(.AddItem(1),1,0)
		.set_CellValue(.AddItem(2),1,1)
	End With
	.EndUpdate()
End With
921
How do I set a locked check-box

With Exgrid1
	.BeginUpdate()
	With .Columns.Add("Locked-Check")
		With .Editor
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.CheckValueType
			.set_Option(exontrol.EXGRIDLib.EditorOptionEnum.exCheckValue1,2)
			.Locked = True
		End With
	End With
	With .Columns.Add("Unlocked-Check")
		With .Editor
			.EditType = exontrol.EXGRIDLib.EditTypeEnum.CheckValueType
			.set_Option(exontrol.EXGRIDLib.EditorOptionEnum.exCheckValue2,1)
		End With
	End With
	With .Items
		.set_CellValue(.AddItem(1),1,0)
		.set_CellValue(.AddItem(0),1,1)
	End With
	.EndUpdate()
End With
920
Does the title of the cell's tooltip supports HTML format

With Exgrid1
	.BeginUpdate()
	With .Columns.Add("")
		.Caption = ""
		.HTMLCaption = "Column"
	End With
	With .Items
		.set_CellToolTip(.AddItem("tooltip w/h different title"),0,"<c><b><fgcolor=FF0000>Title</fgcolor></b><br>This is bit of text that's shown when the user hovers the cell. This shows the tit" & _
"le centered with a different color.")
	End With
	.EndUpdate()
End With
919
How do I specify a different title for the cell's tooltip

With Exgrid1
	.BeginUpdate()
	With .Columns.Add("")
		.Caption = "This is the title"
		.HTMLCaption = "Column"
	End With
	With .Items
		.set_CellToolTip(.AddItem("tooltip w/h different title"),0,"This is bit of text that's shown when the user hovers the cell.")
	End With
	.EndUpdate()
End With
918
The cell's tooltip displays the column's caption in its title. How can I get ride of that

Dim h
With Exgrid1
	.BeginUpdate()
	With .Columns
		.Add("C1")
		.Add("C2")
	End With
	With .Items
		h = .AddItem("tooltip w/h caption")
		.set_CellToolTip(h,0,"This is bit of text that's shown when the user hovers the cell. This shows the column's caption in the title.")
		.set_CellValue(h,1,"tooltip no caption")
		.set_CellToolTip(h,1,"This is bit of text that's shown when the user hovers the cell. This shows no column's caption in the title.")
	End With
	With .Columns.Item("C2")
		.HTMLCaption = .Caption
		.Caption = ""
	End With
	.EndUpdate()
End With
917
How can I programmatically show the column's filter

' RClick event - Fired when right mouse button is clicked
Private Sub Exgrid1_RClick(ByVal sender As System.Object) Handles Exgrid1.RClick
	Dim c,hit,i
	With Exgrid1
		i = .get_ItemFromPoint(-1,-1,c,hit)
		.Columns.Item(c).ShowFilter("-1,-1,128,128")
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.ShowFocusRect = False
	With .Columns.Add("Items ")
		.DisplayFilterPattern = False
		.FilterList = exontrol.EXGRIDLib.FilterListEnum.exShowExclude Or exontrol.EXGRIDLib.FilterListEnum.exShowFocusItem Or exontrol.EXGRIDLib.FilterListEnum.exShowCheckBox
	End With
	With .Items
		.AddItem("Item 1")
		.AddItem("Item 2")
		.AddItem("Item 3")
	End With
	.EndUpdate()
End With
916
I want to be able to click on one of the headers, and sort by other column. How can I do that (method 2)

' ColumnClick event - Fired after the user clicks on column's header.
Private Sub Exgrid1_ColumnClick(ByVal sender As System.Object,ByVal Column As exontrol.EXGRIDLib.Column) Handles Exgrid1.ColumnClick
	' Column.SortOrder = 1
	With Exgrid1
		.SortOnClick = exontrol.EXGRIDLib.SortOnClickEnum.exDefaultSort
		.Columns.Item("Sort").SortOrder = exontrol.EXGRIDLib.SortOrderEnum.SortAscending
		.SortOnClick = exontrol.EXGRIDLib.SortOnClickEnum.exUserSort
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.SortOnClick = exontrol.EXGRIDLib.SortOnClickEnum.exUserSort
	.Columns.Add("Items")
	.Columns.Add("Sort").Visible = False
	With .Items
		.set_CellValue(.AddItem("Item 1 (3)"),1,3)
		.set_CellValue(.AddItem("Item 2 (1)"),1,1)
		.set_CellValue(.AddItem("Item 3 (2)"),1,2)
	End With
	.EndUpdate()
End With
915
I want to be able to click on one of the headers, and sort by other column. How can I do that (method 1)

' ColumnClick event - Fired after the user clicks on column's header.
Private Sub Exgrid1_ColumnClick(ByVal sender As System.Object,ByVal Column As exontrol.EXGRIDLib.Column) Handles Exgrid1.ColumnClick
	' Column.SortOrder = 1
	With Exgrid1
		.Items.SortChildren(0,"Sort",True)
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.SortOnClick = exontrol.EXGRIDLib.SortOnClickEnum.exUserSort
	.Columns.Add("Items")
	.Columns.Add("Sort").Visible = False
	With .Items
		.set_CellValue(.AddItem("Item 1 (3)"),1,3)
		.set_CellValue(.AddItem("Item 2 (1)"),1,1)
		.set_CellValue(.AddItem("Item 3 (2)"),1,2)
	End With
	.EndUpdate()
End With
914
How can I highlight the cell's button with a different appearance, when cursor hovers it

With Exgrid1
	.BeginUpdate()
	.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
	.DefaultItemHeight = 22
	.TreeColumnIndex = -1
	.SelForeColor = Color.FromArgb(0,0,0)
	.SelBackColor = .BackColor
	.set_Background32(exontrol.EXGRIDLib.BackgroundPartEnum.exCursorHoverCellButton,&H1000000)
	With .Columns.Add("Buttons")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasButton,True)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
		.Alignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
		.HeaderAlignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
	End With
	With .Items
		.AddItem("Button <b>1</b>")
		.AddItem("Button <b>2</b>")
		.AddItem("Button <b>3</b>")
	End With
	.EndUpdate()
End With
913
How can I prevent highlighting the cell's button while cursor hovers it

' AddItem event - Occurs after a new Item has been inserted to Items collection.
Private Sub Exgrid1_AddItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddItem
	With Exgrid1
		With .Items
			.set_CellValue(Item,0,"Button <b>A</b>")
			.set_CellValue(Item,1,"Button <b>B</b>")
		End With
	End With
End Sub

With Exgrid1
	.BeginUpdate()
	.DefaultItemHeight = 22
	.TreeColumnIndex = -1
	.SelForeColor = Color.FromArgb(0,0,0)
	.SelBackColor = .BackColor
	.set_Background32(exontrol.EXGRIDLib.BackgroundPartEnum.exCursorHoverCellButton,-1)
	With .Columns.Add("A")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasButton,True)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
		.Alignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
		.HeaderAlignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
	End With
	With .Columns.Add("B")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasButton,True)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
		.Alignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
		.HeaderAlignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
	End With
	.Columns.Add("").Position = 1
	With .Items
		.set_CellEnabled(.AddItem(""),1,False)
		.AddItem("")
		.AddItem("")
	End With
	.EndUpdate()
End With
912
How can I change the image of the icon while performing OLE Drag and Drop

// OLEStartDrag event is not supported. Use the DragEnter,DragLeave,DragOver, DragDrop ... events.
With Exgrid1
	.BeginUpdate()
	.OLEDropMode = exontrol.EXGRIDLib.exOLEDropModeEnum.exOLEDropManual
	.ColumnAutoResize = False
	.DefaultItemHeight = 22
	.HeaderHeight = .DefaultItemHeight
	.Columns.Add("Default").Width = 128
	With .Items
		.AddItem("Item 1")
		.AddItem("Item 2")
		.AddItem("Item 3")
		.AddItem("Item 4")
		.AddItem("Item 5")
	End With
	With .VisualAppearance
		.Add(1,"gBFLBCJwBAEHhEJAAChABakMACAADACAxRDQNABQKAAzQFAYaBiG6GAAGEaRYgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjH" & _
"LUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQIhsC4JUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDB" & _
"KTjMLaYgkIIlVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItQALByua5mWhbcZyBCOPgBTrRb5zO58FjuTK7YLjMB7NrUNYtFaUMy2OpOCADIaecTNcaWLx" & _
"PF2MY1HWYxVj2Jw3DuRJonKYB5lKAYkkYdA6hyDIjBkApaFoAAhBMfYxiGNAkFECZnm4YQBgiOgDl2URSE4KAEj2AJKigFgGgGYIIAyPQ6CCRogAAOxhAMSgSDgIRDhY" & _
"FoFmGCBmBQOAMjgdgQDsUITEIIg5iISAEmIOBigiJgqgqYhoFyVILyyMgyDmYxDg4rBjgiZg6g0Dh4kiTIMGMKAwmgOQkEkFhGhGZIJAoPoQAyQ4mE6BhlAkRgXhODoZ" & _
"C0A4Pg6KRmCSFplkkdheDmJYTioVgACOY4uGaDwmgmJhqg8JlWmOGRmGkChyhyZxJAobYbmMI4yHqFQnkmdh+2RYp4DMIZ5gaBohmiCYGB+IJOmoNhtiPXZGG2I1tgyb" & _
"4lmgGhmhqJt0Fyb4gk8CtsCiahKhYH4oXiAohiUKpKjaLt+goDJxiyaZqlaNot4OTJx3gKp2iiL5sAsBoov+KgMnOMZrisJpKjLjocnPeBLEaRI0m0SxWkSNBPEoDJ1j" & _
"abJrHaXo35obOZC2OximaOZugsYpi3ga42mKO5vAuRpijsTxqAyd49m8S5mnqPuqFyd4gk+DAGn6QJwEwFp+kAT+BnmQpwgwNwOkPtYsnnrgsFcEpFnGDBnBKRRPiwUw" & _
"ckecgMgcIpHGMKQwnuSZygyJ1/HKOgMnyS5zAyRwykycw5g4Eg0jCA57DqTpzkydw+kIDR9AUCY9A2HQXBIUh0g0JRJ5aUxmnQZIPnkUgvDUI5tFcVoPjUOB+A4QBAIC" & _
"A")
		.Add(2,"gBFLBCJwBAEHhEJAAChABC8MACAADACAxRDQNABQKAAzQFAYaBiG6GAAGEaRYgmFgAQhFcZQSKUOQTDKMIziaQIRDINQlSTJcQjKKEUQTFiXIyAKKwEgmEQMQiCcbzX" & _
"IUBxAAqXZZFUaKAgOMJDTLBAzUTCQbR7HiQYyBeCQOo+VoaSACEIlAZJRjoOo5DJGGQILlQJqyYrpaAxIgkEJuTqGoQaXgle53PJeLpXW5Nez9P7AMBwK7bbaqeTyXa+" & _
"eDtJhif4cXjIMhyLI8UxXEKOL7jDSYPgqK48QhCEJQPQ9EyXJqnahoemCeRXBZ+aqxbBsCwCep0YBeNr3HaNaz3PK/brtWxMDpeA5IYhhF7WdZFR4tMrOdAtHL9FyPJ5" & _
"TFicgXnoTAKAsRpHPeVhrAUd4LkmY5yj+fQ+i8L4zk+Y5vjCe4oD6ZoNhSRxiisVRKg+T5vnWfB6h6J5yAIf4fieWJFHyHZHHSTAygyAociMKBKEKBIeCiCZyHYFAnCA" & _
"B4mBeBQJlgRIegOCgYCySAgh2WAkgINAMmMNIgCcCYoGYLoLmKaIshqCgMliEICgmDRDEiUQmkmAhWDCD5inicIVg4TQYloJg2g2ExYhoJZJEidIThMCQSFyEwkGKaRK" & _
"FEJQJBkOhLCUJIDFoRiKBmBJhDeDZZDoPAlgmQhghaGZimmHhphqZopDoYw3GYEgFgGHROGOFJkCSSQCDoTAkiSaQ6C6IBJFkPIUCSJ5CDoeQ5CcVZ5gWHROmONJsCMS" & _
"ISByEFyjIRoYiaKYaG6HonEiOhcguJQIHoRJsh0WBWB2JIpiqShKi0OwqnqRouiyTpGhGBxiYIZKOhqGp2j4aRaAqZL3FAECAgA==")
	End With
	.set_Background32(exontrol.EXGRIDLib.BackgroundPartEnum.exDragDropBefore,&H1000000)
	.set_Background32(exontrol.EXGRIDLib.BackgroundPartEnum.exDragDropAfter,&H2000000)
	.set_Background(exontrol.EXGRIDLib.BackgroundPartEnum.exDragDropForeColor,Color.FromArgb(0,0,1))
	.EndUpdate()
End With
911
How can I sort by two-columns, one by date and one by time

Dim h
With Exgrid1
	.BeginUpdate()
	.SingleSort = False
	With .Columns
		.Add("Index").FormatColumn = "1 index ``"
		.Add("Date").SortType = exontrol.EXGRIDLib.SortTypeEnum.SortDate
		With .Add("Time")
			.SortType = exontrol.EXGRIDLib.SortTypeEnum.SortTime
			.FormatColumn = "time(value)"
		End With
	End With
	With .Items
		h = .AddItem(0)
		.set_CellValue(h,1,#1/1/2001#)
		.set_CellValue(h,2,#1/1/2001 10:00:00 AM#)
		h = .AddItem(0)
		.set_CellValue(h,1,#12/31/2000#)
		.set_CellValue(h,2,#1/1/2001 10:00:00 AM#)
		h = .AddItem(0)
		.set_CellValue(h,1,#1/1/2001#)
		.set_CellValue(h,2,#1/1/2001 6:00:00 AM#)
		h = .AddItem(0)
		.set_CellValue(h,1,#12/31/2000#)
		.set_CellValue(h,2,#1/1/2001 8:00:00 AM#)
		h = .AddItem(0)
		.set_CellValue(h,1,#1/1/2001#)
		.set_CellValue(h,2,#1/1/2001 8:00:00 AM#)
		h = .AddItem(0)
		.set_CellValue(h,1,#12/31/2000#)
		.set_CellValue(h,2,#1/1/2001 6:00:00 AM#)
	End With
	.Layout = "multiplesort=""C1:1 C2:1"""
	.EndUpdate()
End With
910
How can I display a context menu

' MouseUp event - Occurs when the user releases a mouse button.
Private Sub Exgrid1_MouseUpEvent(ByVal sender As System.Object,ByVal Button As Short,ByVal Shift As Short,ByVal X As Integer,ByVal Y As Integer) Handles Exgrid1.MouseUpEvent
	' Items.ToString = "Check[chk],[sep],Item 1,Item 2,Item 3"
	With Exgrid1
		With New Object()
			
		End With
	End With
End Sub

Dim rs
With Exgrid1
	.ColumnAutoResize = False
	.ScrollBySingleLine = True
	.ContinueColumnScroll = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.ReadOnly = exontrol.EXGRIDLib.ReadOnlyEnum.exReadOnly
End With
909
Also, are there any plans on the ability to put borders on individual cells or rows or columns

Dim h,hx
With Exgrid1
	.BeginUpdate()
	With .VisualAppearance
		.Add(1,"gBFLBCJwBAEHhEJAAChABOUGACAADACAxRDQNABQKAAzQFAYbBkGqGAAGIYxYgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYRhkEYgEiONoaDJCM4wH" & _
"IMQxHCKTZRkGYpajOPobUbGUywHRcRRvH6EZQGWg6GjqK43SCEEZhJBNGyTJ6BZbGURbCqSLAwWZAYy2RCMRxDJqLKypSwKPoGKosS5OUwzHItaRtHaJJAwKZ6ApGQpR" & _
"VTAYxVfC1PzkACma4nS7oXraVJFVZTdYwTh+JABTzGLpnKw7FhGa5pABpdq0RTuOZdAbPMoyXBrXqqB46UCOGg5HRWWwHR7ZIquap9JzfCq5cRbWr5BBOPaBYKwdD1CB" & _
"+iMVRnlQRY4hafZwAMH5Pl4XQnjCEBECSIBpDGHQOicIwtBIBpmiWEIJj6eJQloEgomafgyGGCI6kKYZQH+igGAKAJgEgFgGgGYIFlCf4CmCSA2A6A5hAgRgEgQYRIFY" & _
"FIEmEaBmBmBghigdgQgcIZogYC4ICIKB6CSCRhiiHgogWIooi4F4AmKaIaDCDBihiTg0gsIIYmYOoOmOSJ2D6AZQBAgI=")
		.Add(2,"gBFLBCJwBAEHhEJAAChABdUIQAAYAQGKIaBoAKBQAGaAoDDYMg1QwAAxDGLEEwsACEIrjKCVIgkHYJRjGEZxNCMIhiGAaQChEZYHgkMomDAOEgyHKcEgJGyEQgkOa4a" & _
"jCKYrSzAcrwTI4cRVHiQZygOZ4DBSOY8VBAcQweItJhrKqVRgriitNQjCyjZCpOaIDooAJmRZNNISBBIEQSKA0TDOQ5TSKUMYhOZTBBEbbMNBtBIUIRpajbMBiFywUxU" & _
"OJYXhmG4dR7IMhyLI8UxXFo7P7mOZZXjmO49T7Kc70LQ9CyHJKnabpWoaXj2VZZV7Mda2DTNSzPKK1bZpG4bTouKZ5WjfN72fgeCzrF7HchyPJcXxnG4ZAMBA")
		.Add(3,"gBFLBCJwBAEHhEJAAChABL0GACAADACAxRDQNABQKAAzQFAYbBkGqGAAGIYxYgmFgAQhFcZQSpEEg7BKMYwjOJgEgmEQxDANIBQSKoaQiGQYRhkEYpFiONoXDJCM4wH" & _
"IMQxHCKTZRkGYpajOPobUbGUygBRdExvEyEZQGWg6GjqK43SCEEZhJBNGyfH6dBpEWT7ChENQwWLLFoRDIcQyXCytIDter4boGKosS5OUwzGAtaRvHaJJAwKZ6ApGQpR" & _
"VTAYxUdC1HTjJiEa4nS7oXraVJFVZTdYwTh+JABTzGKbsSycKqWaqkABZeoWbTuOZdAbPMoyXBrXgOLYzUCOGg5HRWWwHR7ZIq0Pg9Hqaa4bVbIVxbcAGH6BQa6J5hEB" & _
"ECSIBpDGHQOicIwtBIBpmhqEIJj2eJQloEgokiegyGGCI6kKZ5BnefA+D8L4flOa52nufg+g+f5fnPFB/ooBZ1omSAWASAJgGgJgJgIIIoDYAIDCCaBFnuBAhCgOgUgU" & _
"YIoF4GIBiGKBuAcfohmgNgdggX54g4JB/F+GImCqCpikiNguguUAQICA=")
		.Add(4,"gBFLBCJwBAEHhEJAAChABBUGACAADACAxRDQNABQKAAzQFAYbBkGqGAAGIYxYgmFgAQhFcZQSpEEg7BKMYwjOJgCgmEQxDANMiwGKoaQiGQYRhkEYgFiONoaDJCM4wH" & _
"IMQxHCKTZRkGYpajOPobUbAYQQSAkEgpECbZqoEZaDoaOorTZINJ0VR1Ox5KKfZyGURZPqOEQ1DBZEI2RZUbxDJquLhACj7AjeZZtRJZVp2TY9eQ3LC3aYhGqwAwSFpJ" & _
"VjUEBgRBJIDSMY6DpOIxaEgNZpwEITOTxUK0EhRLy5agDCJ1QrCdanahqOpaXpmW5dV7YNh2LTnfzXNq3bhuO5bXqOd59X7fN54Dg+D4LRLHbpxXIcXqvFaZZDnOb4To" & _
"PEuAZUmqcB2B2DoHGuN5Tm6d46lsPwfhOS5mnOeg9DqCAIICA")
	End With
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exGroupLinesAtRoot
	.SelBackColor = .BackColor
	.SelForeColor = .ForeColor
	.DefaultItemHeight = 22
	.Columns.Add("")
	.Columns.Add("").set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellBackColor,33554432)
	.Columns.Add("")
	With .Items
		h = .AddItem("Root 1")
		.set_ItemBackColor32(h,&H1000000)
		hx = .get_SplitCell(h,0)
		.set_CellValue(0,hx,"count(current,dir,1)")
		.set_CellValueFormat(0,hx,exontrol.EXGRIDLib.ValueFormatEnum.exTotalField)
		.set_FormatCell(0,hx,"'Childs: ' + value")
		.set_CellBackColor32(0,hx,&H3000000)
		.set_CellHAlignment(0,hx,exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment)
		.InsertItem(h,Nothing,"Child 1")
		.InsertItem(h,Nothing,"Child 2")
		.set_ExpandItem(h,True)
		h = .AddItem("Root 2")
		.set_ItemBackColor32(h,&H4000000)
		hx = .get_SplitCell(h,0)
		.set_CellValue(0,hx,"count(current,dir,1)")
		.set_CellValueFormat(0,hx,exontrol.EXGRIDLib.ValueFormatEnum.exTotalField)
		.set_FormatCell(0,hx,"'Childs: ' + value")
		.set_CellBackColor32(0,hx,&H3000000)
		.set_CellHAlignment(0,hx,exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment)
		.InsertItem(h,Nothing,"Child 1")
		.InsertItem(h,Nothing,"Child 2")
		.InsertItem(h,Nothing,"Child 3")
		.set_ItemBackColor32(.InsertItem(h,Nothing,"Child 4"),&H4000000)
	End With
	.EndUpdate()
End With
908
How can I decode the Layout property
With Exgrid1
	.BeginUpdate()
	With .Columns
		.Add("C1")
		.Add("C2").Position = 1
	End With
	With .Items
		.set_CellValue(.AddItem("SubItem 1.1"),1,"SubItem 1.2")
		.set_CellValue(.AddItem("SubItem 2.1"),1,"SubItem 2.2")
	End With
	.Columns.Item("C2").SortOrder = exontrol.EXGRIDLib.SortOrderEnum.SortDescending
	.EndUpdate()
	Debug.Print( "Encoded:" )
	Debug.Print( .Layout )
	' Add 'exontrol.exprint.dll(ExPrint.dll)' reference to your project.
	With New exontrol.EXPRINTLib.exprint()
		Debug.Print( "Decoded: " )
		Debug.Print( .get_Decode64TextW(Exgrid1.Layout) )
	End With
End With
907
No new line is shown if using <br> tag. How can I show a new line with-in the cell

Dim h
With Exgrid1
	.BeginUpdate()
	.ScrollBySingleLine = True
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	With .Columns.Add("Single-Line")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,True)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
	End With
	With .Columns.Add("Multiple-Lines")
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,False)
		.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellValueFormat,1)
	End With
	With .Items
		.set_CellValue(.AddItem("First-Line<br>Second-Line"),1,"First-Line<br>Second-Line")
		h = .AddItem("First-Line<br>Second-Line<br>Third-Line")
		.set_CellSingleLine(h,exontrol.EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap)
		.set_CellHAlignment(h,0,exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment)
		.set_ItemDivider(h,0)
	End With
	.EndUpdate()
End With
906
I am using exCRD to layout the columns in the grid, but is there a way where I can have the text in a cell wrap if it's exceeds the width of the cell instead of showing the ...'s

Dim h
With Exgrid1
	.BeginUpdate()
	.DrawGridLines = exontrol.EXGRIDLib.GridLinesEnum.exRowLines
	.DefaultItemHeight = 36
	.FullRowSelect = exontrol.EXGRIDLib.CellSelectEnum.exColumnSel
	With .Columns
		With .Add("Column1")
			.Visible = False
			.Editor.EditType = exontrol.EXGRIDLib.EditTypeEnum.EditType
		End With
		With .Add("Column2")
			.Visible = False
			.Editor.EditType = exontrol.EXGRIDLib.EditTypeEnum.EditType
		End With
		With .Add("Column3")
			.Visible = False
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellSingleLine,False)
			.Editor.EditType = exontrol.EXGRIDLib.EditTypeEnum.EditType
		End With
		With .Add("Column4")
			.Alignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
			.HeaderAlignment = exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment
			.Visible = False
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasButton,True)
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellButtonAutoWidth,True)
		End With
		With .Add("FormatLevel")
			.FormatLevel = "(0/1),""Information to be shown on the control's header""[a=17][ww]:128,3:128"
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellFormatLevel,"(0/1),2[a=17][ww]:128,3:128")
		End With
	End With
	With .Items
		h = .AddItem("Cell 1.1")
		.set_CellValue(h,1,"Cell 1.2")
		.set_CellValue(h,2,"This is just a bit of information on first row")
		.set_CellValue(h,3,"Cell 1.4")
		.set_CellSingleLine(h,3,exontrol.EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap)
		h = .AddItem("Cell 2.1")
		.set_CellValue(h,1,"Cell 2.2")
		.set_CellValue(h,2,"This is just a bit of information on second row")
		.set_CellValue(h,3,"Cell 2.4")
	End With
	.EndUpdate()
End With
905
How can I load pictures using URL ( http:// )
Dim http
With Exgrid1
	' Add 'exontrol.exhttp.dll(ExHTTP.dll)' reference to your project.
	http = New exontrol.EXHTTPLib.exhttp()
	.PictureDisplay = exontrol.EXGRIDLib.PictureDisplayEnum.LowerRight
	.Picture = http.get_GETImage("http://mail.exontrol.com/images/exontrol.png")
End With
904
How can I filter programmatically by multiple columns
Dim h
With Exgrid1
	.BeginUpdate()
	With .Columns
		.Add("Name")
		With .Add("Active")
			.set_Def(exontrol.EXGRIDLib.DefColumnEnum.exCellHasCheckBox,True)
			.DisplayFilterButton = True
		End With
		.Add("Type")
		.Add("Mode").FilterType = exontrol.EXGRIDLib.FilterTypeEnum.exFilter
	End With
	With .Items
		h = .AddItem("Item A")
		.set_CellState(h,1,1)
		.set_CellValue(h,2,"A")
		h = .AddItem("Item B")
		.set_CellState(h,1,0)
		.set_CellValue(h,2,"B")
		h = .AddItem("Item C")
		.set_CellState(h,1,1)
		.set_CellValue(h,2,"C")
		.set_CellValue(h,3,"None")
		h = .AddItem("Item D")
		.set_CellState(h,1,1)
		.set_CellValue(h,2,"C")
	End With
	With .Columns.Item(1)
		.FilterType = exontrol.EXGRIDLib.FilterTypeEnum.exCheck
		.Filter = 1
	End With
	With .Columns.Item(2)
		.FilterType = exontrol.EXGRIDLib.FilterTypeEnum.exFilter
		.Filter = "C"
	End With
	With .Columns.Item(3)
		.FilterType = exontrol.EXGRIDLib.FilterTypeEnum.exNonBlanks
	End With
	.ApplyFilter()
	.EndUpdate()
End With
903
How can I add Right-To-Left Reading-Order / RTL Layout
With Exgrid1
	.BeginUpdate()
	.TreeColumnIndex = -1
	With .Columns.Add("RTL - Header Caption")
		.HeaderAlignment = &H20000 Or exontrol.EXGRIDLib.AlignmentEnum.RightAlignment
		.Alignment = &H20000 Or exontrol.EXGRIDLib.AlignmentEnum.RightAlignment
	End With
	.FullRowSelect = exontrol.EXGRIDLib.CellSelectEnum.exColumnSel
	With .Items
		.AddItem("RTL - Text Right")
		.set_CellHAlignment(.AddItem("RTL - Text Center"),0,&H20000 Or exontrol.EXGRIDLib.AlignmentEnum.CenterAlignment)
		.set_CellHAlignment(.AddItem("RTL - Text Left"),0,&H20000)
	End With
	.EndUpdate()
End With
902
I have applied ebn to the grid using the following code, and noticed that it applies to the filter dropdownList too. Is there a way to prevent this behavior, like keeping the Filter dropdownlist intact

With Exgrid1
	.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
	.Appearance = &H1000000
	.BackColorHeader32 = &H1000000
	.set_Background32(exontrol.EXGRIDLib.BackgroundPartEnum.exBackColorFilter,&H8000000f)
	.Columns.Add("Filter").DisplayFilterButton = True
	With .Items
		.AddItem("Item 1")
		.AddItem("Item 2")
	End With
End With
901
The tree lines from the group parent to its children are missing and no identation is present: the parent and all its children are on the same offset from left. What canbe done

' AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
Private Sub Exgrid1_AddGroupItem(ByVal sender As System.Object,ByVal Item As Integer) Handles Exgrid1.AddGroupItem
	Dim nGroupColumn
	With Exgrid1
		With .Items
			nGroupColumn = .get_GroupItem(Item)
			.set_ItemDivider(Item,-1)
			.set_FormatCell(Item,0,.get_FormatCell(Item,nGroupColumn))
			.set_CellValue(Item,0,Exgrid1.Columns.Item(nGroupColumn).GroupByTotalField)
			.set_CellValueFormat(Item,0,.get_CellValueFormat(Item,nGroupColumn))
		End With
	End With
End Sub

Dim rs
With Exgrid1
	.BeginUpdate()
	.ReadOnly = exontrol.EXGRIDLib.ReadOnlyEnum.exReadOnly
	.ColumnAutoResize = False
	rs = New ADODB.Recordset()
	With rs
		.Open("Orders","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",3,3)
	End With
	.DataSource = rs
	.SortBarVisible = True
	.SortBarCaption = "Drag a <b>column</b> header here to group by that column."
	.AllowGroupBy = True
	With .Columns.Item(0)
		.AllowGroupBy = False
		.Width = 96
	End With
	.Columns.Item(1).SortOrder = exontrol.EXGRIDLib.SortOrderEnum.SortAscending
	.LinesAtRoot = exontrol.EXGRIDLib.LinesAtRootEnum.exLinesAtRoot
	.EndUpdate()
End With